The sysfs_get_enabled() opened file processor not closed,
may cause a file handle leak.
Signed-off-by: Hao Zeng <[email protected]>
---
tools/power/cpupower/lib/powercap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/power/cpupower/lib/powercap.c b/tools/power/cpupower/lib/powercap.c
index 0ce29ee4c2e4..a39ee1c89679 100644
--- a/tools/power/cpupower/lib/powercap.c
+++ b/tools/power/cpupower/lib/powercap.c
@@ -51,7 +51,7 @@ static int sysfs_get_enabled(char *path, int *mode)
close(fd);
return -1;
}
-
+ close(fd);
if (yes_no == '1') {
*mode = 1;
return 0;
--
2.37.2
No virus found
Checked by Hillstone Network AntiVirus
On 4/12/23 22:46, Hao Zeng wrote:
> The sysfs_get_enabled() opened file processor not closed,
> may cause a file handle leak.
>
Please add information how you found this problem?
> Signed-off-by: Hao Zeng <[email protected]>
> ---
> tools/power/cpupower/lib/powercap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/power/cpupower/lib/powercap.c b/tools/power/cpupower/lib/powercap.c
> index 0ce29ee4c2e4..a39ee1c89679 100644
> --- a/tools/power/cpupower/lib/powercap.c
> +++ b/tools/power/cpupower/lib/powercap.c
> @@ -51,7 +51,7 @@ static int sysfs_get_enabled(char *path, int *mode)
> close(fd);
> return -1;
> }> -
> + close(fd);
The error path logic can be simplified with a goto to
to handle the error path to close the file and return.
> if (yes_no == '1') {
> *mode = 1;
> return 0;
This path that returns 0 can be simplified as well to do
return just once, after error path handling is done with
a goto.
Please send me v2 with the changes above with information
on how you found the problem.
thanks,
-- Shuah
thanks,
-- Shuah
Dear Shuah
Thank you for taking the time to reply to my email.
On Thu, 2023-04-13 at 10:43 -0600, Shuah Khan wrote:
> On 4/12/23 22:46, Hao Zeng wrote:
> > The sysfs_get_enabled() opened file processor not closed,
> > may cause a file handle leak.
> >
>
> Please add information how you found this problem?
>
> > Signed-off-by: Hao Zeng <[email protected]>
> > ---
> > tools/power/cpupower/lib/powercap.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/power/cpupower/lib/powercap.c
> > b/tools/power/cpupower/lib/powercap.c
> > index 0ce29ee4c2e4..a39ee1c89679 100644
> > --- a/tools/power/cpupower/lib/powercap.c
> > +++ b/tools/power/cpupower/lib/powercap.c
> > @@ -51,7 +51,7 @@ static int sysfs_get_enabled(char *path, int
> > *mode)
> > close(fd);
> > return -1;
> > }> -
> > + close(fd);
>
> The error path logic can be simplified with a goto to
> to handle the error path to close the file and return.
>
> > if (yes_no == '1') {
> > *mode = 1;
> > return 0;
>
> This path that returns 0 can be simplified as well to do
> return just once, after error path handling is done with
> a goto.
Ok, I will provide V2
>
> Please send me v2 with the changes above with information
> on how you found the problem.
>
I didn't find this problem by testing, just by reading the code
> thanks,
> -- Shuah
>
> thanks,
> -- Shuah