diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/hostip.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/hostip.c b/lib/hostip.c index c4e5ebfee..ffc8198ea 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -623,8 +623,14 @@ Curl_addrinfo *Curl_addrinfo_copy(Curl_addrinfo *orig)       most often is only a fraction of the original alloc */    newbuf=(char *)realloc(aptr, (long)(bufptr-aptr)); +  if(!newbuf) { +    /* serious error, but since this is shrinking only requested, we can +       still use the previous memory block */ +    newbuf = aptr; +  } +    /* if the alloc moved, we need to adjust the hostent struct */ -  if(newbuf != aptr) +  else if(newbuf != aptr)      Curl_hostent_relocate((struct hostent*)newbuf, (long)(newbuf-aptr));    /* setup the return */  | 
