From 89a26fd1fce00fc24d05956b3b32ac782ab144a4 Mon Sep 17 00:00:00 2001 From: Garrett Wollman Date: Tue, 19 Aug 2003 23:01:46 +0000 Subject: 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 --- lib/libc/Makefile | 1 + lib/libc/gen/gethostname.c | 3 +++ 2 files changed, 4 insertions(+) (limited to 'lib/libc') diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 79ad35d96cd1..1969291effda 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 37b52ca208a5..acc338680633 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) { -- cgit v1.2.3