From 2305c2c7be1d2101d2f666ee88054aa55ab3e348 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 25 Jul 2007 22:56:47 +0000 Subject: r13903@catbus: nickm | 2007-07-25 18:03:56 -0400 Make buffer large enough to hold ip6.arpa addresses. This code was not actually used yet, so no user-visible bug existed. (Based on patch by croup.) svn:r10928 --- src/or/eventdns.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/or/eventdns.c b/src/or/eventdns.c index c2f0c7f4c..2ecdfc0d0 100644 --- a/src/or/eventdns.c +++ b/src/or/eventdns.c @@ -2308,7 +2308,8 @@ int evdns_resolve_reverse(struct in_addr *in, int flags, evdns_callback_type cal } int evdns_resolve_reverse_ipv6(struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr) { - char buf[64]; + /* 32 nybbles, 32 periods, "ip6.arpa", NUL. */ + char buf[73]; char *cp; struct request *req; int i; @@ -2321,8 +2322,8 @@ int evdns_resolve_reverse_ipv6(struct in6_addr *in, int flags, evdns_callback_ty *cp++ = "0123456789abcdef"[byte >> 4]; *cp++ = '.'; } - assert(cp + strlen(".ip6.arpa") < buf+sizeof(buf)); - memcpy(cp, ".ip6.arpa", strlen(".ip6.arpa")+1); + assert(cp + strlen("ip6.arpa") < buf+sizeof(buf)); + memcpy(cp, "ip6.arpa", strlen("ip6.arpa")+1); log(EVDNS_LOG_DEBUG, "Resolve requested for %s (reverse)", buf); req = request_new(TYPE_PTR, buf, flags, callback, ptr); if (!req) return 1; -- cgit v1.2.3