You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
2 months ago
|
From b7d7837128e90c8b496ebc3d88eda1a8ff477392 Mon Sep 17 00:00:00 2001
|
||
|
From: Mateusz Kusiak <mateusz.kusiak@intel.com>
|
||
|
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 <mateusz.kusiak@intel.com>
|
||
|
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||
|
---
|
||
|
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
|
||
|
|