Message ID | 20210727174129.3612656-6-siddhesh@sourceware.org |
---|---|
State | New |
Headers | show |
Series | Static analysis fixes | expand |
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!
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. */