2023-04-13 04:52:43

by Hao Zeng

[permalink] [raw]
Subject: [PATCH] cpupower:Fix resource leaks in sysfs_get_enabled()

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


2023-04-13 16:49:05

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] cpupower:Fix resource leaks in sysfs_get_enabled()

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

2023-04-14 03:11:34

by Hao Zeng

[permalink] [raw]
Subject: Re: [PATCH] cpupower:Fix resource leaks in sysfs_get_enabled()

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