From: Anders Sundman Date: Fri, 11 Nov 2011 07:04:05 +0000 (+0100) Subject: Return value bugfix of tor_addr_to_PTR_name X-Git-Tag: tor-0.2.3.8-alpha~34^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b97588a31565269476a2537d93eae2a5919d9be;p=thirdparty%2Ftor.git Return value bugfix of tor_addr_to_PTR_name Returns value semantics was inconsitent between IPv4 and IPv6 --- diff --git a/src/common/address.c b/src/common/address.c index b41456f8de..06e4a1d005 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -470,13 +470,17 @@ tor_addr_parse_PTR_name(tor_addr_t *result, const char *address, return 0; } -/** Convert addr to an in-addr.arpa name or a .ip6.arpa name, and store - * the result in the outlen-byte buffer at out. Return 0 on - * success, -1 on failure. */ +/** Convert addr to an in-addr.arpa name or a .ip6.arpa name, + * and store the result in the outlen-byte buffer at + * out. Return the number of chars written to out, not + * including the trailing \0, on success. Returns -1 on failure. */ int tor_addr_to_PTR_name(char *out, size_t outlen, - const tor_addr_t *addr) + const tor_addr_t *addr) { + tor_assert(out); + tor_assert(addr); + if (addr->family == AF_INET) { uint32_t a = tor_addr_to_ipv4h(addr); @@ -499,7 +503,7 @@ tor_addr_to_PTR_name(char *out, size_t outlen, *cp++ = '.'; } memcpy(cp, "ip6.arpa", 9); /* 8 characters plus NUL */ - return 0; + return 32 * 2 + 8; } return -1; }