Re: [RESEND PATCH] cpufreq: unnecesary double free inpcc_cpufreq_do_osc

From: David Rientjes
Date: Thu Sep 30 2010 - 16:03:11 EST


On Thu, 30 Sep 2010, Davidlohr Bueso wrote:

> x86, cpufreq: avoid an unnecessary double free when finished in pcc_cpufreq_do_osc()
>
> There is no need to fall through the out_free label thus saving a kfree call.
>
> Signed-off-by: Davidlohr Bueso <dave@xxxxxxx>
> ---
> arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c
> index 994230d..db7dc35 100644
> --- a/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c
> +++ b/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c
> @@ -379,6 +379,8 @@ static int __init pcc_cpufreq_do_osc(acpi_handle *handle)
> if (!(supported & 0x1))
> return -ENODEV;
>
> + return ret;
> +
> out_free:
> kfree(output.pointer);
> return ret;

Why is the kfree() unnecessary? acpi_evaluate_object() will allocate a
new output.pointer if it returns 0, so at this point in the code you would
now be leaking the buffer.

Instead, it would probably be better to fix the existing memory leaks in
that function where we return -ENODEV without going to out_free when
output.length is non-zero.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/