Am 17.08.2012 17:34, schrieb Jim Meyering: > Andreas Färber wrote: > >> Am 17.08.2012 15:35, schrieb Jim Meyering: >>> Jim Meyering wrote: >>>> From: Jim Meyering <meyer...@redhat.com> >>>> >>>> Without this, envlist_to_environ may silently fail to copy all >>>> strings into the destination buffer, and both callers would leak >>>> any env strings allocated after a failing strdup, because the >>>> freeing code stops at the first NULL pointer. >>>> >>>> Signed-off-by: Jim Meyering <meyer...@redhat.com> >>>> --- >>>> envlist.c | 12 ++++++++++-- >>>> 1 file changed, 10 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/envlist.c b/envlist.c >>>> index be0addb..7532091 100644 >>>> --- a/envlist.c >>>> +++ b/envlist.c >>>> @@ -234,8 +234,16 @@ envlist_to_environ(const envlist_t *envlist, size_t >>>> *count) >>>> return (NULL); >>>> >>>> for (entry = envlist->el_entries.lh_first; entry != NULL; >>>> - entry = entry->ev_link.le_next) { >>>> - *(penv++) = strdup(entry->ev_var); >>>> + entry = entry->ev_link.le_next, penv++) { >>>> + *penv = strdup(entry->ev_var); >>>> + if (*penv == NULL) { >>>> + char **e = env; >>>> + while (e <= penv) { >>>> + free(*e++); >>>> + } >>>> + free(env); >>>> + return NULL; >>>> + } >>>> } >>>> *penv = NULL; /* NULL terminate the list */ >>> >>> It seems this has been lost in this list's high volume of patches. >>> Anyone interested? Repost desired? >> >> You announced a v3 but replied to v2? > > Here are links to v3: > > [PATCHv3 1/2] envlist.c: convert each TAB(width-4) to equivalent spaces > https://lists.gnu.org/archive/html/qemu-devel/2012-05/msg02967.html > > [Qemu-devel] [PATCHv3 2/2] envlist.c: handle strdup failure > https://lists.gnu.org/archive/html/qemu-devel/2012-05/msg02966.html
I commented on v3. For practical reasons please ping the latest patches and prefer Patchwork links so that no <address@hidden> gets committed by accident. Thanks for your efforts in reviewing and fixing all these issues! Andreas > >> Indentation looks odd in 2/2, too. > > That was fixed in v3. > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg