From: Daniel Stenberg Date: Tue, 20 May 2003 09:41:39 +0000 (+0000) Subject: Gisle Vanem's code for not trusting h_aliases to always be non-NULL X-Git-Tag: curl-7_10_6~199 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a6566e7743cb6f95efe7f5ca889e5589fcb1436;p=curl Gisle Vanem's code for not trusting h_aliases to always be non-NULL --- diff --git a/lib/hostip.c b/lib/hostip.c index dc38b9f74..c245ab1b7 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -455,18 +455,22 @@ static struct hostent* pack_hostent(char** buf, struct hostent* orig) copy->h_aliases = (char**)bufptr; /* Figure out how many aliases there are */ - for (i = 0; orig->h_aliases[i] != NULL; ++i); + for (i = 0; orig->h_aliases && orig->h_aliases[i]; ++i); /* Reserve room for the array */ bufptr += (i + 1) * sizeof(char*); /* Clone all known aliases */ - for(i = 0; (str = orig->h_aliases[i]); i++) { - len = strlen(str) + 1; - strncpy(bufptr, str, len); - copy->h_aliases[i] = bufptr; - bufptr += len; + if(orig->h_aliases) { + for(i = 0; (str = orig->h_aliases[i]); i++) { + len = strlen(str) + 1; + strncpy(bufptr, str, len); + copy->h_aliases[i] = bufptr; + bufptr += len; + } } + /* if(!orig->h_aliases) i was already set to 0 */ + /* Terminate the alias list with a NULL */ copy->h_aliases[i] = NULL;