diff options
author | delphij <delphij@FreeBSD.org> | 2007-06-14 07:13:28 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2007-06-14 07:13:28 +0000 |
commit | 687b4ebc1a6ad4c42fd9c704edd2eeb36d700ba4 (patch) | |
tree | 5499a5a1c9adc888dfad16a42918098269cca4c5 | |
parent | 9790f8d691dfa4d3c180c16eb2987d4963e7e5c8 (diff) | |
download | FreeBSD-src-687b4ebc1a6ad4c42fd9c704edd2eeb36d700ba4.zip FreeBSD-src-687b4ebc1a6ad4c42fd9c704edd2eeb36d700ba4.tar.gz |
Require users to provide a length information for inet_ntoa_r,
this is common on other platforms.
Reported by: pointyhat via kris
-rw-r--r-- | include/arpa/inet.h | 2 | ||||
-rw-r--r-- | lib/libc/inet/inet_ntoa.c | 7 | ||||
-rw-r--r-- | lib/libc/net/inet.3 | 4 |
3 files changed, 7 insertions, 6 deletions
diff --git a/include/arpa/inet.h b/include/arpa/inet.h index fdc7708..c6a4d07 100644 --- a/include/arpa/inet.h +++ b/include/arpa/inet.h @@ -148,7 +148,7 @@ uint16_t ntohs(uint16_t); in_addr_t inet_addr(const char *); /*const*/ char *inet_ntoa(struct in_addr); -char *inet_ntoa_r(struct in_addr, char *buf); +char *inet_ntoa_r(struct in_addr, char *buf, socklen_t size); const char *inet_ntop(int, const void * __restrict, char * __restrict, socklen_t); int inet_pton(int, const char * __restrict, void * __restrict); diff --git a/lib/libc/inet/inet_ntoa.c b/lib/libc/inet/inet_ntoa.c index b75a983..f5d69fa 100644 --- a/lib/libc/inet/inet_ntoa.c +++ b/lib/libc/inet/inet_ntoa.c @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. * @@ -60,9 +60,10 @@ inet_ntoa(struct in_addr in) { } char * -inet_ntoa_r(struct in_addr in, char *buf) +inet_ntoa_r(struct in_addr in, char *buf, socklen_t size) { - (void) inet_ntop(AF_INET, &in, buf, sizeof("255.255.255.255")); + + (void) inet_ntop(AF_INET, &in, buf, size); return (buf); } diff --git a/lib/libc/net/inet.3 b/lib/libc/net/inet.3 index d6428c9..af48143 100644 --- a/lib/libc/net/inet.3 +++ b/lib/libc/net/inet.3 @@ -28,7 +28,7 @@ .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 11, 2007 +.Dd June 14, 2007 .Dt INET 3 .Os .Sh NAME @@ -62,6 +62,7 @@ .Fo inet_ntoa_r .Fa "struct in_addr in" .Fa "char *buf" +.Fa "socklen_t size" .Fc .Ft const char * .Fo inet_ntop @@ -156,7 +157,6 @@ The routine .Fn inet_ntoa_r is the reentrant version of .Fn inet_ntoa . -It requires a buffer large enough to contain an IPv4 address. The routine .Fn inet_makeaddr takes an Internet network number and a local |