From b7d7837128e90c8b496ebc3d88eda1a8ff477392 Mon Sep 17 00:00:00 2001 From: Mateusz Kusiak Date: Tue, 20 Feb 2024 11:56:09 +0100 Subject: [PATCH 08/41] Monitor: open file before check in check_one_sharer() Open file before performing checks in check_one_sharer() to avoid file tampering. Remove redundant access check. Signed-off-by: Mateusz Kusiak Signed-off-by: Mariusz Tkaczyk --- Monitor.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Monitor.c b/Monitor.c index 824a69fc..7cee95d4 100644 --- a/Monitor.c +++ b/Monitor.c @@ -451,20 +451,17 @@ static int check_one_sharer(int scan) return 2; } - if (access(AUTOREBUILD_PID_PATH, F_OK) != 0) - return 0; - - if (!is_file(AUTOREBUILD_PID_PATH)) { - pr_err("%s is not a regular file.\n", AUTOREBUILD_PID_PATH); - return 2; - } - fp = fopen(AUTOREBUILD_PID_PATH, "r"); if (!fp) { pr_err("Cannot open %s file.\n", AUTOREBUILD_PID_PATH); return 2; } + if (!is_file(AUTOREBUILD_PID_PATH)) { + pr_err("%s is not a regular file.\n", AUTOREBUILD_PID_PATH); + return 2; + } + if (fscanf(fp, "%d", &pid) != 1) { pr_err("Cannot read pid from %s file.\n", AUTOREBUILD_PID_PATH); fclose(fp); -- 2.40.1