From: Mateusz Guzik <mguzik@redhat.com>
To: "Toralf Förster" <toralf.foerster@gmx.de>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: lib/argv_split.c : should argv be kfree'ed ?
Date: Sun, 29 Jun 2014 17:37:12 +0200 [thread overview]
Message-ID: <20140629153711.GA16902@mguzik.redhat.com> (raw)
In-Reply-To: <53B02551.9040907@gmx.de>
On Sun, Jun 29, 2014 at 04:40:17PM +0200, Toralf Förster wrote:
> On 06/29/2014 12:04 AM, Mateusz Guzik wrote:
> > On Sat, Jun 28, 2014 at 11:52:37PM +0200, Toralf Förster wrote:
> >> /me wonders if this patch is needed here :
> >>
> >>
> >> diff --git a/lib/argv_split.c b/lib/argv_split.c
> >> index e927ed0..7de4cb4 100644
> >> --- a/lib/argv_split.c
> >> +++ b/lib/argv_split.c
> >> @@ -85,6 +85,7 @@ char **argv_split(gfp_t gfp, const char *str, int *argcp)
> >> *argv++ = argv_str;
> >> }
> >> }
> >> + kfree (argv);
> >> *argv = NULL;
> >>
> >> if (argcp)
> >>
> >
> > No, see argv_free.
> >
> Ah, understood, it is in the responsibility of the caller to avoid the memleak.
> BTW may I ask you about your opinion about this warning of cppcheck in lib/flex_array.c:
>
> for (part_nr = start_part; part_nr <= end_part; part_nr++) {<--- Memory leak: part
> part = __fa_get_part(fa, part_nr, flags);
> if (!part)
> return -ENOMEM;
> }
> return 0;
>
static struct flex_array_part *
__fa_get_part(struct flex_array *fa, int part_nr, gfp_t flags)
{
struct flex_array_part *part = fa->parts[part_nr];
if (!part) {
part = kmalloc(sizeof(struct flex_array_part), flags);
if (!part)
return NULL;
if (!(flags & __GFP_ZERO))
memset(part, FLEX_ARRAY_FREE,
sizeof(struct flex_array_part));
fa->parts[part_nr] = part;
^^^^^^^^^^^^^^^^^^^^^^^^^^
}
return part;
}
Allocated memory is not leaked. It is stored in 'fa' and is perfectly
reachable afterwards.
'part' in flex_array_prealloc is only used for error checking.
--
Mateusz Guzik
prev parent reply other threads:[~2014-06-29 15:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-28 21:52 lib/argv_split.c : should argv be kfree'ed ? Toralf Förster
2014-06-28 22:04 ` Mateusz Guzik
2014-06-29 14:40 ` Toralf Förster
2014-06-29 15:37 ` Mateusz Guzik [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140629153711.GA16902@mguzik.redhat.com \
--to=mguzik@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=toralf.foerster@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.