* [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
@ 2021-04-07 15:56 Anatoly Burakov
2021-04-07 16:10 ` David Hunt
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Anatoly Burakov @ 2021-04-07 15:56 UTC (permalink / raw)
To: dev; +Cc: david.hunt, thomas
Previous fix has addressed the incorrect handling of `base_frequency`
file, but has added a use-after-free error due to the fact that all
further code paths will lead to an `fclose()` call at the end, so the
additional `fclose()` call right after processing the file was
unnecessary.
Coverity issue: 369901
Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_power/power_pstate_cpufreq.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index 1cb0e4d917..ec745153d3 100644
--- a/lib/librte_power/power_pstate_cpufreq.c
+++ b/lib/librte_power/power_pstate_cpufreq.c
@@ -220,7 +220,6 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
base_ratio = strtoul(buf_base, NULL, POWER_CONVERT_TO_DECIMAL)
/ BUS_FREQ;
- fclose(f_base);
}
/* Add MSR read to detect turbo status */
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 15:56 [dpdk-dev] [PATCH] power: fix use-after-free in pstate code Anatoly Burakov
@ 2021-04-07 16:10 ` David Hunt
2021-04-15 21:29 ` Thomas Monjalon
2021-04-07 16:18 ` Liang Ma
2021-04-07 16:31 ` Burakov, Anatoly
2 siblings, 1 reply; 7+ messages in thread
From: David Hunt @ 2021-04-07 16:10 UTC (permalink / raw)
To: Anatoly Burakov, dev; +Cc: thomas
Hi Anatoly,
On 7/4/2021 4:56 PM, Anatoly Burakov wrote:
> Previous fix has addressed the incorrect handling of `base_frequency`
> file, but has added a use-after-free error due to the fact that all
> further code paths will lead to an `fclose()` call at the end, so the
> additional `fclose()` call right after processing the file was
> unnecessary.
>
> Coverity issue: 369901
>
> Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/librte_power/power_pstate_cpufreq.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
> index 1cb0e4d917..ec745153d3 100644
> --- a/lib/librte_power/power_pstate_cpufreq.c
> +++ b/lib/librte_power/power_pstate_cpufreq.c
> @@ -220,7 +220,6 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
>
> base_ratio = strtoul(buf_base, NULL, POWER_CONVERT_TO_DECIMAL)
> / BUS_FREQ;
> - fclose(f_base);
> }
>
> /* Add MSR read to detect turbo status */
Yes, removing the fclose will do it. Either that or add an "f_base =
NULL" after the fclose, but the fclose removal is fine.
Acked-by: David Hunt <david.hunt@intel.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 15:56 [dpdk-dev] [PATCH] power: fix use-after-free in pstate code Anatoly Burakov
2021-04-07 16:10 ` David Hunt
@ 2021-04-07 16:18 ` Liang Ma
2021-04-07 16:31 ` Burakov, Anatoly
2 siblings, 0 replies; 7+ messages in thread
From: Liang Ma @ 2021-04-07 16:18 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: dev, david.hunt, thomas
Reviewed-by: Liang Ma <liangma@liangbit.com>
On Wed, Apr 07, 2021 at 03:56:42PM +0000, Anatoly Burakov wrote:
> Previous fix has addressed the incorrect handling of `base_frequency`
> file, but has added a use-after-free error due to the fact that all
> further code paths will lead to an `fclose()` call at the end, so the
> additional `fclose()` call right after processing the file was
> unnecessary.
>
> Coverity issue: 369901
>
> Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/librte_power/power_pstate_cpufreq.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
> index 1cb0e4d917..ec745153d3 100644
> --- a/lib/librte_power/power_pstate_cpufreq.c
> +++ b/lib/librte_power/power_pstate_cpufreq.c
> @@ -220,7 +220,6 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
>
> base_ratio = strtoul(buf_base, NULL, POWER_CONVERT_TO_DECIMAL)
> / BUS_FREQ;
> - fclose(f_base);
> }
>
> /* Add MSR read to detect turbo status */
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 15:56 [dpdk-dev] [PATCH] power: fix use-after-free in pstate code Anatoly Burakov
2021-04-07 16:10 ` David Hunt
2021-04-07 16:18 ` Liang Ma
@ 2021-04-07 16:31 ` Burakov, Anatoly
2021-04-07 16:53 ` Burakov, Anatoly
2 siblings, 1 reply; 7+ messages in thread
From: Burakov, Anatoly @ 2021-04-07 16:31 UTC (permalink / raw)
To: dev; +Cc: david.hunt, thomas
On 07-Apr-21 4:56 PM, Anatoly Burakov wrote:
> Previous fix has addressed the incorrect handling of `base_frequency`
> file, but has added a use-after-free error due to the fact that all
> further code paths will lead to an `fclose()` call at the end, so the
> additional `fclose()` call right after processing the file was
> unnecessary.
>
> Coverity issue: 369901
>
> Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
Actually, self-nack, because this:
snprintf(fullpath_min, sizeof(fullpath_min), POWER_SYSFILE_MIN_FREQ,
pi->lcore_id);
f_min = fopen(fullpath_min, "rw+");
FOPEN_OR_ERR_RET(f_min, -1);
snprintf(fullpath_max, sizeof(fullpath_max), POWER_SYSFILE_MAX_FREQ,
pi->lcore_id);
f_max = fopen(fullpath_max, "rw+");
if (f_max == NULL)
fclose(f_min);
FOPEN_OR_ERR_RET(f_max, -1);
comes after, and will leak the f_base descriptor. Closing it and setting
it to NULL seems like a better solution.
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 16:31 ` Burakov, Anatoly
@ 2021-04-07 16:53 ` Burakov, Anatoly
2021-04-07 17:08 ` Liang Ma
0 siblings, 1 reply; 7+ messages in thread
From: Burakov, Anatoly @ 2021-04-07 16:53 UTC (permalink / raw)
To: dev; +Cc: david.hunt, thomas
On 07-Apr-21 5:31 PM, Burakov, Anatoly wrote:
> On 07-Apr-21 4:56 PM, Anatoly Burakov wrote:
>> Previous fix has addressed the incorrect handling of `base_frequency`
>> file, but has added a use-after-free error due to the fact that all
>> further code paths will lead to an `fclose()` call at the end, so the
>> additional `fclose()` call right after processing the file was
>> unnecessary.
>>
>> Coverity issue: 369901
>>
>> Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>
> Actually, self-nack, because this:
>
> snprintf(fullpath_min, sizeof(fullpath_min), POWER_SYSFILE_MIN_FREQ,
> pi->lcore_id);
> f_min = fopen(fullpath_min, "rw+");
> FOPEN_OR_ERR_RET(f_min, -1);
>
> snprintf(fullpath_max, sizeof(fullpath_max), POWER_SYSFILE_MAX_FREQ,
> pi->lcore_id);
> f_max = fopen(fullpath_max, "rw+");
> if (f_max == NULL)
> fclose(f_min);
> FOPEN_OR_ERR_RET(f_max, -1);
>
> comes after, and will leak the f_base descriptor. Closing it and setting
> it to NULL seems like a better solution.
>
Actually no, scratch that, it doesn't :) that's before. So, patch should
be OK.
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 16:53 ` Burakov, Anatoly
@ 2021-04-07 17:08 ` Liang Ma
0 siblings, 0 replies; 7+ messages in thread
From: Liang Ma @ 2021-04-07 17:08 UTC (permalink / raw)
To: Burakov, Anatoly; +Cc: dev, david.hunt, thomas
On Wed, Apr 07, 2021 at 05:53:48PM +0100, Burakov, Anatoly wrote:
> On 07-Apr-21 5:31 PM, Burakov, Anatoly wrote:
> > On 07-Apr-21 4:56 PM, Anatoly Burakov wrote:
> > > Previous fix has addressed the incorrect handling of `base_frequency`
> > > file, but has added a use-after-free error due to the fact that all
> > > further code paths will lead to an `fclose()` call at the end, so the
> > > additional `fclose()` call right after processing the file was
> > > unnecessary.
> > >
> > > Coverity issue: 369901
> > >
> > > Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
> > >
> > > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> > > ---
> >
> > Actually, self-nack, because this:
> >
> > snprintf(fullpath_min, sizeof(fullpath_min), POWER_SYSFILE_MIN_FREQ,
> > pi->lcore_id);
> > f_min = fopen(fullpath_min, "rw+");
> > FOPEN_OR_ERR_RET(f_min, -1);
> >
> > snprintf(fullpath_max, sizeof(fullpath_max), POWER_SYSFILE_MAX_FREQ,
> > pi->lcore_id);
> > f_max = fopen(fullpath_max, "rw+");
> > if (f_max == NULL)
> > fclose(f_min);
> > FOPEN_OR_ERR_RET(f_max, -1);
> >
> > comes after, and will leak the f_base descriptor. Closing it and setting
> > it to NULL seems like a better solution.
> >
>
> Actually no, scratch that, it doesn't :) that's before. So, patch should be
> OK.
A Cup Coffee will help ;-)
>
> --
> Thanks,
> Anatoly
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] power: fix use-after-free in pstate code
2021-04-07 16:10 ` David Hunt
@ 2021-04-15 21:29 ` Thomas Monjalon
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2021-04-15 21:29 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: dev, David Hunt
07/04/2021 18:10, David Hunt:
> Hi Anatoly,
>
> On 7/4/2021 4:56 PM, Anatoly Burakov wrote:
> > Previous fix has addressed the incorrect handling of `base_frequency`
> > file, but has added a use-after-free error due to the fact that all
> > further code paths will lead to an `fclose()` call at the end, so the
> > additional `fclose()` call right after processing the file was
> > unnecessary.
> >
> > Coverity issue: 369901
> >
> > Fixes: 8a5febaac4f7 ("power: fix P-state base frequency handling")
> >
> > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>
> Yes, removing the fclose will do it. Either that or add an "f_base =
> NULL" after the fclose, but the fclose removal is fine.
>
> Acked-by: David Hunt <david.hunt@intel.com>
Applied, thanks
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-04-15 21:29 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07 15:56 [dpdk-dev] [PATCH] power: fix use-after-free in pstate code Anatoly Burakov
2021-04-07 16:10 ` David Hunt
2021-04-15 21:29 ` Thomas Monjalon
2021-04-07 16:18 ` Liang Ma
2021-04-07 16:31 ` Burakov, Anatoly
2021-04-07 16:53 ` Burakov, Anatoly
2021-04-07 17:08 ` Liang Ma
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).