summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>2003-08-19 23:01:46 +0000
committerwollman <wollman@FreeBSD.org>2003-08-19 23:01:46 +0000
commit6e1b7649c8c3561f3a350d01bd1186dc6abf64b5 (patch)
tree5b436576d8b07d6ddd0812df2201b0d2c7da9912 /lib/libc
parent1c1194250d59edd49cfbc3438c6e16a732403a44 (diff)
downloadFreeBSD-src-6e1b7649c8c3561f3a350d01bd1186dc6abf64b5.zip
FreeBSD-src-6e1b7649c8c3561f3a350d01bd1186dc6abf64b5.tar.gz
Add a kluge suggested by Marcel to paper over the difference between
gethostname()'s old and new signatures without requiring a library bump. Note that programs which called gethostname() with a negative argument were already broken, since the same type conversion was done by the old implementation. Add a note in the Makefile so that whoever next bumps the libc revision will delete the kluge at the same time (as it will no longer be necessary). This is only operative on 64-bit platforms. Submitted by: marcel
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/Makefile1
-rw-r--r--lib/libc/gen/gethostname.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index 79ad35d..1969291 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -9,6 +9,7 @@
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
# system call stubs.
LIB=c
+# If you bump SHLIB_MAJOR, remove kluge from gen/gethostname.c.
SHLIB_MAJOR= 5
SHLIBDIR?= /lib
CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
diff --git a/lib/libc/gen/gethostname.c b/lib/libc/gen/gethostname.c
index 37b52ca..acc3386 100644
--- a/lib/libc/gen/gethostname.c
+++ b/lib/libc/gen/gethostname.c
@@ -49,6 +49,9 @@ gethostname(name, namelen)
{
int mib[2];
+ /* Kluge to avoid ABI breakage. */
+ namelen = (int)namelen;
+
mib[0] = CTL_KERN;
mib[1] = KERN_HOSTNAME;
if (sysctl(mib, 2, name, &namelen, NULL, 0) == -1) {
OpenPOWER on IntegriCloud