Index: sm_resolve.c
===================================================================
RCS file: /cvs/sendmail/sm_resolve.c,v
retrieving revision 8.24.4.6
diff -u -r8.24.4.6 sm_resolve.c
--- sm_resolve.c	25 Jun 2002 04:22:41 -0000	8.24.4.6
+++ sm_resolve.c	22 Mar 2003 22:24:48 -0000
@@ -172,10 +172,10 @@
 	DNS_REPLY_T *r;
 	RESOURCE_RECORD_T **rr;
 
-	r = (DNS_REPLY_T *) xalloc(sizeof(*r));
-	memset(r, 0, sizeof(*r));
+	r = (DNS_REPLY_T *) sm_malloc(sizeof(*r));
 	if (r == NULL)
 		return NULL;
+	memset(r, 0, sizeof(*r));
 
 	p = data;
 
@@ -227,12 +227,13 @@
 			dns_free_data(r);
 			return NULL;
 		}
-		*rr = (RESOURCE_RECORD_T *) xalloc(sizeof(**rr));
+		*rr = (RESOURCE_RECORD_T *) sm_malloc(sizeof(**rr));
 		if (*rr == NULL)
 		{
 			dns_free_data(r);
 			return NULL;
 		}
+		memset(*rr, 0, sizeof(**rr));
 		(*rr)->rr_domain = sm_strdup(host);
 		if ((*rr)->rr_domain == NULL)
 		{
@@ -274,7 +275,7 @@
 			}
 			l = strlen(host) + 1;
 			(*rr)->rr_u.rr_mx = (MX_RECORD_T *)
-				xalloc(sizeof(*((*rr)->rr_u.rr_mx)) + l);
+				sm_malloc(sizeof(*((*rr)->rr_u.rr_mx)) + l);
 			if ((*rr)->rr_u.rr_mx == NULL)
 			{
 				dns_free_data(r);
@@ -295,7 +296,7 @@
 			}
 			l = strlen(host) + 1;
 			(*rr)->rr_u.rr_srv = (SRV_RECORDT_T*)
-				xalloc(sizeof(*((*rr)->rr_u.rr_srv)) + l);
+				sm_malloc(sizeof(*((*rr)->rr_u.rr_srv)) + l);
 			if ((*rr)->rr_u.rr_srv == NULL)
 			{
 				dns_free_data(r);
@@ -330,7 +331,7 @@
 				dns_free_data(r);
 				return NULL;
 			}
-			(*rr)->rr_u.rr_txt = (char *) xalloc(txtlen + 1);
+			(*rr)->rr_u.rr_txt = (char *) sm_malloc(txtlen + 1);
 			if ((*rr)->rr_u.rr_txt == NULL)
 			{
 				dns_free_data(r);
@@ -341,8 +342,8 @@
 			break;
 
 		  default:
-			(*rr)->rr_u.rr_data = (unsigned char*) xalloc(size);
-			if (size != 0 && (*rr)->rr_u.rr_data == NULL)
+			(*rr)->rr_u.rr_data = (unsigned char*) sm_malloc(size);
+			if ((*rr)->rr_u.rr_data == NULL)
 			{
 				dns_free_data(r);
 				return NULL;
