Changeset 171 for trunk/src/sh_mail.c


Ignore:
Timestamp:
Jul 8, 2008, 11:16:14 AM (16 years ago)
Author:
katerina
Message:

Include dnmalloc (ticket #108) and fix bugs #106 (EINPROGRESS) and #107 (compressBound).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_mail.c

    r170 r171  
    18831883  } querybuf;
    18841884
    1885   querybuf reply;
     1885  querybuf * reply;
    18861886  char expanded[1024];
    18871887  unsigned char * comp_dn, * eom;
     
    18961896    SL_RETURN (NULL, _("get_mx"));
    18971897
     1898  reply = SH_ALLOC(sizeof(querybuf));
     1899
    18981900  errno = 0;
    18991901  length = res_query (hostname, C_IN, T_MX,
    1900                       (unsigned char *) &reply, 4095);
     1902                      (unsigned char *) reply, 4095);
    19011903  if (length < 1)
    19021904    {
     
    19251927#endif
    19261928        }
     1929      SH_FREE(reply);
    19271930      SL_RETURN (NULL, _("get_mx"));
    19281931    }
    19291932
    19301933  ret = 0;
    1931   header  = (HEADER *) &reply;
     1934  header  = (HEADER *) reply;
    19321935
    19331936  /* start of data section
    19341937   */
    1935   comp_dn = (unsigned char *) &reply + HFIXEDSZ;
     1938  comp_dn = (unsigned char *) reply + HFIXEDSZ;
    19361939
    19371940  /* end-of-message
    19381941   */
    1939   eom     = (unsigned char *) &reply + length;
     1942  eom     = (unsigned char *) reply + length;
    19401943
    19411944  /* HEADER NAME  -- must be skipped or decompressed
     
    19581961      comp_dn += ret + QFIXEDSZ;
    19591962      if (ret < 1 || comp_dn >= eom)
    1960         SL_RETURN (NULL, _("get_mx"));
     1963        {
     1964          SH_FREE(reply);
     1965          SL_RETURN (NULL, _("get_mx"));
     1966        }
    19611967    }
    19621968  count         = ntohs (header->ancount);
    19631969  if (count < 1)
    1964     SL_RETURN (NULL, _("get_mx"));
     1970    {
     1971      SH_FREE(reply);
     1972      SL_RETURN (NULL, _("get_mx"));
     1973    }
    19651974
    19661975  retval        = SH_ALLOC (sizeof (dnsrep));
    19671976  if (!retval)
    1968     SL_RETURN (NULL, _("get_mx"));
     1977    {
     1978      SH_FREE(reply);
     1979      SL_RETURN (NULL, _("get_mx"));
     1980    }
     1981
    19691982  retval->count = count;
    19701983
     
    19731986  if (!sl_ok_muls(count, sizeof (mx)))
    19741987    {
     1988      SH_FREE(reply);
    19751989      SH_FREE   (retval);
    19761990      SL_RETURN (NULL, _("get_mx"));
     
    19811995  if (!result)
    19821996    {
     1997      SH_FREE(reply);
    19831998      SH_FREE   (retval);
    19841999      SL_RETURN (NULL, _("get_mx"));
     
    19952010      if (ret < 1 || comp_dn >= eom)
    19962011        {
     2012          SH_FREE(reply);
    19972013          SH_FREE (result);
    19982014          SH_FREE (retval);
     
    20062022      if (type != T_MX || comp_dn >= eom)
    20072023        {
     2024          SH_FREE(reply);
    20082025          SH_FREE (result);
    20092026          SH_FREE (retval);
     
    20172034      if (comp_dn >= eom)
    20182035        {
     2036          SH_FREE(reply);
    20192037          SH_FREE (result);
    20202038          SH_FREE (retval);
     
    20272045      if (comp_dn >= eom)
    20282046        {
     2047          SH_FREE(reply);
    20292048          SH_FREE (result);
    20302049          SH_FREE (retval);
     
    20382057      if (rdlength < 1 || comp_dn >= eom)
    20392058        {
     2059          SH_FREE(reply);
    20402060          SH_FREE (result);
    20412061          SH_FREE (retval);
     
    20492069      if (comp_dn >= eom)
    20502070        {
     2071          SH_FREE(reply);
    20512072          SH_FREE (result);
    20522073          SH_FREE (retval);
     
    20592080      if (ret < 1)
    20602081        {
     2082          SH_FREE(reply);
    20612083          SH_FREE (result);
    20622084          SH_FREE (retval);
     
    20742096  while (ret > 0 && comp_dn < eom && count);
    20752097
     2098  SH_FREE(reply);
    20762099  SL_RETURN (retval, _("get_mx"));
    20772100}
Note: See TracChangeset for help on using the changeset viewer.