Commit e652be0f authored by Hao Zeng's avatar Hao Zeng Committed by Shuah Khan

cpupower:Fix resource leaks in sysfs_get_enabled()

The sysfs_get_enabled() opened file processor not closed,
may cause a file handle leak.
Putting error handling and resource cleanup code together
makes the code easy to maintain and read.
Removed the unnecessary else if branch from the original
function, as it should return an error in cases other than '0'.
Signed-off-by: default avatarHao Zeng <zenghao@kylinos.cn>
Suggested-by: default avatarShuah Khan <skhan@linuxfoundation.org>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent ac9a7868
......@@ -40,25 +40,34 @@ static int sysfs_get_enabled(char *path, int *mode)
{
int fd;
char yes_no;
int ret = 0;
*mode = 0;
fd = open(path, O_RDONLY);
if (fd == -1)
return -1;
if (fd == -1) {
ret = -1;
goto out;
}
if (read(fd, &yes_no, 1) != 1) {
close(fd);
return -1;
ret = -1;
goto out_close;
}
if (yes_no == '1') {
*mode = 1;
return 0;
goto out_close;
} else if (yes_no == '0') {
return 0;
goto out_close;
} else {
ret = -1;
goto out_close;
}
return -1;
out_close:
close(fd);
out:
return ret;
}
int powercap_get_enabled(int *mode)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment