[reSIProcate] Memory Leaks
    Bayart, Frederik 
    Frederik.Bayart at siemens.com
       
    Fri Feb  3 04:51:48 CST 2006
    
    
  
Hi,
I was looking at a fragment of the source code of DnsUtil which you find below. The getLocalHostName is looking 2x for the hostname, 1x by calling gethostname and 1x by calling gethostbyname. In the past, it was only gethostname. To me, it seems that someone wanted to replace the call to gethostname  by gethostbyname but forgot remove the first call. Can someone have a look at it ?
Frederik
DnsUtil::getLocalHostName()
{
   char buffer[MAXHOSTNAMELEN];
   buffer[0] = '\0';
   if (int e = gethostname(buffer,sizeof(buffer)) == -1)
   {
      if ( e != 0 )
      {
         int err = getErrno();
         switch (err)
         {
// !RjS! This makes no sense for non-windows. The
//       current hack (see the #define in .hxx) needs
//       to be reworked.
            case WSANOTINITIALISED:
               CritLog( << "could not find local hostname because network not initialized:" << strerror(err) );
               break;
            default:
               CritLog( << "could not find local hostname:" << strerror(err) );
               break;
         }
         throw Exception("could not find local hostname",__FILE__,__LINE__);
      }
   }
   struct hostent* he;
   if ((he = gethostbyname(buffer)) != 0) 
   {
      if (strchr(he->h_name, '.') != 0) 
      {
         strncpy(buffer, he->h_name, sizeof(buffer));
      }
      else 
      {
         WarningLog( << "local hostname does not contain a domain part");
      }
   }
   return Data(buffer);
}
    
    
More information about the resiprocate-devel
mailing list