summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2007-06-14 07:13:28 +0000
committerdelphij <delphij@FreeBSD.org>2007-06-14 07:13:28 +0000
commit687b4ebc1a6ad4c42fd9c704edd2eeb36d700ba4 (patch)
tree5499a5a1c9adc888dfad16a42918098269cca4c5 /lib
parent9790f8d691dfa4d3c180c16eb2987d4963e7e5c8 (diff)
downloadFreeBSD-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
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/inet/inet_ntoa.c7
-rw-r--r--lib/libc/net/inet.34
2 files changed, 6 insertions, 5 deletions
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
OpenPOWER on IntegriCloud