Re: [patch] latency_hist: fix small memory leak
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Dan Carpenter <error27@xxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, rt-users <linux-rt-users@xxxxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxx>, Steven Rostedt <rostedt@xxxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Clark Williams <williams@xxxxxxxxxx>, Frank Rowand <frank.rowand@xxxxxxxxxxx>, Robin Gareus <robin@xxxxxxxxxx>, Gregory Haskins <ghaskins@xxxxxxxxxx>, Philippe Reynes <philippe.reynes@xxxxxxxxxx>, Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx>, Will Schmidt <will_schmidt@xxxxxxxxxxxx>, Darren Hart <dvhltc@xxxxxxxxxx>, Jan Blunck <jblunck@xxxxxxx>, Sven-Thorsten Dietrich <sdietrich@xxxxxxxxxx>, Jon Masters <jcm@xxxxxxxxxx>, Mark Knecht <markknecht@xxxxxxxxx>, John Kacur <jkacur@xxxxxxxxxx>, Nick Piggin <nickpiggin@xxxxxxxxxxxx>
- Subject: Re: [patch] latency_hist: fix small memory leak
- From: Carsten Emde <Carsten.Emde@xxxxxxxxx>
- Date: Wed, 24 Feb 2010 08:05:47 +0100
- In-reply-to: <20100222132743.GB5416@bicker>
- Organization: Open Source Automation Development Lab (OSADL) eG
- References: <alpine.LFD.2.00.0908282326460.19335@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0909152257590.8957@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0909190027400.2889@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0910061210400.2646@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0910141115020.9428@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0911061743210.12138@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.0911101326280.2725@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.1001212102220.2906@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.1002181748460.2811@xxxxxxxxxxxxxxxxxxxxx> <alpine.LFD.2.00.1002212322450.2811@xxxxxxxxxxxxxxxxxxxxx> <20100222132743.GB5416@bicker>
- User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc11 Thunderbird/3.0.1
On 02/22/2010 02:27 PM, Dan Carpenter wrote:
> index_ptr needs to be freed on the error path.
>
> Signed-off-by: Dan Carpenter <error27@xxxxxxxxx>
>
> diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
> index b3b5ea2..8edc70c 100644
> --- a/kernel/trace/latency_hist.c
> +++ b/kernel/trace/latency_hist.c
> @@ -204,8 +204,10 @@ static void *l_start(struct seq_file *m, loff_t *pos)
> , my_hist->beyond_hist_bound_samples
> , MAX_ENTRY_NUM, "samples");
> }
> - if (index >= MAX_ENTRY_NUM)
> + if (index >= MAX_ENTRY_NUM) {
> + kfree(index_ptr);
> return NULL;
> + }
>
> *index_ptr = index;
> return index_ptr;
Thanks a lot for spotting this leak. We even don't need to allocate the
memory, if index >= MAX_ENTRY_NUM.
This patch applies to 2.6.31.12-rt21 and 2.6.33-rc8-rt (rt/head).
Signed-off-by: Carsten Emde <C.Emde@xxxxxxxxx>
Index: head/kernel/trace/latency_hist.c
===================================================================
--- head.orig/kernel/trace/latency_hist.c
+++ head/kernel/trace/latency_hist.c
@@ -218,13 +218,10 @@ void notrace latency_hist(int latency_ty
static void *l_start(struct seq_file *m, loff_t *pos)
{
- loff_t *index_ptr = kmalloc(sizeof(loff_t), GFP_KERNEL);
+ loff_t *index_ptr = NULL;
loff_t index = *pos;
struct hist_data *my_hist = m->private;
- if (!index_ptr)
- return NULL;
-
if (index == 0) {
char minstr[32], avgstr[32], maxstr[32];
@@ -263,10 +260,12 @@ static void *l_start(struct seq_file *m,
MAX_ENTRY_NUM - my_hist->offset,
"samples");
}
- if (index >= MAX_ENTRY_NUM)
- return NULL;
+ if (index < MAX_ENTRY_NUM) {
+ index_ptr = kmalloc(sizeof(loff_t), GFP_KERNEL);
+ if (index_ptr)
+ *index_ptr = index;
+ }
- *index_ptr = index;
return index_ptr;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[RT Stable]
[Kernel Newbies]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photo]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]