Messages in this thread Patch in this message | | | From | Hao Zeng <> | Subject | [PATCH v2] cpupower:Fix resource leaks in sysfs_get_enabled() | Date | Fri, 14 Apr 2023 11:08:30 +0800 |
| |
When the read return value is equal to 1, a file handle leak will occur
Signed-off-by: Hao Zeng <zenghao@kylinos.cn> Suggested-by: Shuah Khan <skhan@linuxfoundation.org> --- tools/power/cpupower/lib/powercap.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/tools/power/cpupower/lib/powercap.c b/tools/power/cpupower/lib/powercap.c index 0ce29ee4c2e4..02ec5b0bff6b 100644 --- a/tools/power/cpupower/lib/powercap.c +++ b/tools/power/cpupower/lib/powercap.c @@ -40,7 +40,7 @@ static int sysfs_get_enabled(char *path, int *mode) { int fd; char yes_no; - + int ret = 0; *mode = 0; fd = open(path, O_RDONLY); @@ -48,17 +48,18 @@ static int sysfs_get_enabled(char *path, int *mode) return -1; if (read(fd, &yes_no, 1) != 1) { - close(fd); - return -1; + ret = -1; + goto err; } - if (yes_no == '1') { - *mode = 1; - return 0; - } else if (yes_no == '0') { - return 0; + if (yes_no != '1' || yes_no != '0') { + ret = -1; + goto err; } - return -1; + *mode = yes_no - '0'; +err: + close(fd); + return ret; } int powercap_get_enabled(int *mode) -- 2.37.2
No virus found Checked by Hillstone Network AntiVirus
| |