Changeset 171 for trunk/src/sh_mail.c
- Timestamp:
- Jul 8, 2008, 11:16:14 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/sh_mail.c
r170 r171 1883 1883 } querybuf; 1884 1884 1885 querybuf reply;1885 querybuf * reply; 1886 1886 char expanded[1024]; 1887 1887 unsigned char * comp_dn, * eom; … … 1896 1896 SL_RETURN (NULL, _("get_mx")); 1897 1897 1898 reply = SH_ALLOC(sizeof(querybuf)); 1899 1898 1900 errno = 0; 1899 1901 length = res_query (hostname, C_IN, T_MX, 1900 (unsigned char *) &reply, 4095);1902 (unsigned char *) reply, 4095); 1901 1903 if (length < 1) 1902 1904 { … … 1925 1927 #endif 1926 1928 } 1929 SH_FREE(reply); 1927 1930 SL_RETURN (NULL, _("get_mx")); 1928 1931 } 1929 1932 1930 1933 ret = 0; 1931 header = (HEADER *) &reply;1934 header = (HEADER *) reply; 1932 1935 1933 1936 /* start of data section 1934 1937 */ 1935 comp_dn = (unsigned char *) &reply + HFIXEDSZ;1938 comp_dn = (unsigned char *) reply + HFIXEDSZ; 1936 1939 1937 1940 /* end-of-message 1938 1941 */ 1939 eom = (unsigned char *) &reply + length;1942 eom = (unsigned char *) reply + length; 1940 1943 1941 1944 /* HEADER NAME -- must be skipped or decompressed … … 1958 1961 comp_dn += ret + QFIXEDSZ; 1959 1962 if (ret < 1 || comp_dn >= eom) 1960 SL_RETURN (NULL, _("get_mx")); 1963 { 1964 SH_FREE(reply); 1965 SL_RETURN (NULL, _("get_mx")); 1966 } 1961 1967 } 1962 1968 count = ntohs (header->ancount); 1963 1969 if (count < 1) 1964 SL_RETURN (NULL, _("get_mx")); 1970 { 1971 SH_FREE(reply); 1972 SL_RETURN (NULL, _("get_mx")); 1973 } 1965 1974 1966 1975 retval = SH_ALLOC (sizeof (dnsrep)); 1967 1976 if (!retval) 1968 SL_RETURN (NULL, _("get_mx")); 1977 { 1978 SH_FREE(reply); 1979 SL_RETURN (NULL, _("get_mx")); 1980 } 1981 1969 1982 retval->count = count; 1970 1983 … … 1973 1986 if (!sl_ok_muls(count, sizeof (mx))) 1974 1987 { 1988 SH_FREE(reply); 1975 1989 SH_FREE (retval); 1976 1990 SL_RETURN (NULL, _("get_mx")); … … 1981 1995 if (!result) 1982 1996 { 1997 SH_FREE(reply); 1983 1998 SH_FREE (retval); 1984 1999 SL_RETURN (NULL, _("get_mx")); … … 1995 2010 if (ret < 1 || comp_dn >= eom) 1996 2011 { 2012 SH_FREE(reply); 1997 2013 SH_FREE (result); 1998 2014 SH_FREE (retval); … … 2006 2022 if (type != T_MX || comp_dn >= eom) 2007 2023 { 2024 SH_FREE(reply); 2008 2025 SH_FREE (result); 2009 2026 SH_FREE (retval); … … 2017 2034 if (comp_dn >= eom) 2018 2035 { 2036 SH_FREE(reply); 2019 2037 SH_FREE (result); 2020 2038 SH_FREE (retval); … … 2027 2045 if (comp_dn >= eom) 2028 2046 { 2047 SH_FREE(reply); 2029 2048 SH_FREE (result); 2030 2049 SH_FREE (retval); … … 2038 2057 if (rdlength < 1 || comp_dn >= eom) 2039 2058 { 2059 SH_FREE(reply); 2040 2060 SH_FREE (result); 2041 2061 SH_FREE (retval); … … 2049 2069 if (comp_dn >= eom) 2050 2070 { 2071 SH_FREE(reply); 2051 2072 SH_FREE (result); 2052 2073 SH_FREE (retval); … … 2059 2080 if (ret < 1) 2060 2081 { 2082 SH_FREE(reply); 2061 2083 SH_FREE (result); 2062 2084 SH_FREE (retval); … … 2074 2096 while (ret > 0 && comp_dn < eom && count); 2075 2097 2098 SH_FREE(reply); 2076 2099 SL_RETURN (retval, _("get_mx")); 2077 2100 }
Note:
See TracChangeset
for help on using the changeset viewer.