[5/5] gaiconf_init: Avoid double-free in label and precedence lists
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
labellist and precedencelist could get freed a second time if there
are allocation failures, so set them to NULL to avoid a double-free.
---
sysdeps/posix/getaddrinfo.c | 2 ++
1 file changed, 2 insertions(+)
Comments
Hi Siddhesh,
> labellist and precedencelist could get freed a second time if there
> are allocation failures, so set them to NULL to avoid a double-free.
> ---
> sysdeps/posix/getaddrinfo.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
> index 838a68f022..43dfc6739e 100644
> --- a/sysdeps/posix/getaddrinfo.c
> +++ b/sysdeps/posix/getaddrinfo.c
> @@ -2008,6 +2008,7 @@ gaiconf_init (void)
> l = l->next;
> }
> free_prefixlist (labellist);
> + labellist = NULL;
>
> /* Sort the entries so that the most specific ones are at
> the beginning. */
> @@ -2046,6 +2047,7 @@ gaiconf_init (void)
> l = l->next;
> }
> free_prefixlist (precedencelist);
> + precedencelist = NULL;
>
> /* Sort the entries so that the most specific ones are at
> the beginning. */
Looks good to me.
Yes, a later allocation failure can trigger a `goto no_file' which
tries to free these (again, in this case). Setting to NULL avoids that.
Reviewed-by: Arjun Shankar <arjun@redhat.com>
Cheers!
@@ -2008,6 +2008,7 @@ gaiconf_init (void)
l = l->next;
}
free_prefixlist (labellist);
+ labellist = NULL;
/* Sort the entries so that the most specific ones are at
the beginning. */
@@ -2046,6 +2047,7 @@ gaiconf_init (void)
l = l->next;
}
free_prefixlist (precedencelist);
+ precedencelist = NULL;
/* Sort the entries so that the most specific ones are at
the beginning. */