summaryrefslogtreecommitdiff
path: root/mail/postfix/patches/patch-ah
blob: 132cec76ded92562a277a6c273f75ae66780fbc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$NetBSD: patch-ah,v 1.3 2002/07/17 22:34:46 itojun Exp $

diff -u -r1.3 src/dns/dns_lookup.c
--- src/dns/dns_lookup.c	2001/11/11 05:26:51	1.3
+++ src/dns/dns_lookup.c	2002/07/17 21:20:30
@@ -132,6 +132,7 @@
 } DNS_REPLY;
 
 #define INET_ADDR_LEN	4		/* XXX */
+#define INET6_ADDR_LEN	16		/* XXX */
 
 /* dns_query - query name server and pre-parse the reply */
 
@@ -328,6 +329,17 @@
 	break;
     case T_A:
 	if (fixed->length != INET_ADDR_LEN) {
+	    msg_warn("extract_answer: bad address length: %d", fixed->length);
+	    return (0);
+	}
+	if (fixed->length > sizeof(temp))
+	    msg_panic("dns_get_rr: length %d > DNS_NAME_LEN",
+		      fixed->length);
+	memcpy(temp, pos, fixed->length);
+	data_len = fixed->length;
+	break;
+    case T_AAAA:
+	if (fixed->length != INET6_ADDR_LEN) {
 	    msg_warn("extract_answer: bad address length: %d", fixed->length);
 	    return (0);
 	}