rem: return 0;
add: return h_addr_copy;
context: canon_host (const char *host){#ifdef HAVE_GETHOSTBYNAME  struct hostent *he = gethostbyname (host);  if (he)    {# ifdef HAVE_GETHOSTBYADDR      char *addr = 0;      /* Try and get an ascii version of the numeric host address.  */      switch (he->h_addrtype)	{#  ifdef HAVE_INET_NTOA	case AF_INET:	  addr = inet_ntoa (*(struct in_addr *) he->h_addr);	  break;#  endif /* HAVE_INET_NTOA */	}      if (addr && strcmp (he->h_name, addr) == 0)	{	  /* gethostbyname has returned a string representation of the IP	     address, for example, "127.0.0.1".  So now, look up the host	     name via the address.  Although it may seem reasonable to look	     up the host name via the address, we must not pass `he->h_addr'	     directly to gethostbyaddr because on some systems he->h_addr	     is located in a static library buffer that is reused in the	     gethostbyaddr call.  Make a copy and use that instead.  */	  char *h_addr_copy = (char *) malloc (he->h_length);	  if (h_addr_copy == NULL)	    he = NULL;	  else	    {	      memcpy (h_addr_copy, he->h_addr, he->h_length);	      he = gethostbyaddr (h_addr_copy, he->h_length, he->h_addrtype);	      free (h_addr_copy);	    }	}# endif /* HAVE_GETHOSTBYADDR */      if (he)	return (char *) (he->h_name);    }#endif /* HAVE_GETHOSTBYNAME */  return 0;}