From f8d29b7a2912ec08869f47453b28431292a0534e Mon Sep 17 00:00:00 2001 From: nectar Date: Tue, 22 Apr 2003 22:19:05 +0000 Subject: ``Strong typing is a crutch for people with weak memories.'' Correct a bug that should have wreaked havoc everywhere, but for some reason only bit unlucky people who use `-march' optimizations. The compiler cannot assist one in distinguishing between the two function calls below. int nsdispatch(void *, ...); void *discard; nsdispatch(&discard, ...); /* correct .. no, really! */ nsdispatch(discard, ...); /* Boom */ Robin provided me with a debugging environment in which I could see what was going on. Badness when using CPUTYPE was Reported by: "Robin P. Blanchard" Reported by: nork Sponsored by: DARPA, Network Associates Laboratories --- lib/libc/gen/getgrent.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/libc') diff --git a/lib/libc/gen/getgrent.c b/lib/libc/gen/getgrent.c index ca95e55..42cffa0 100644 --- a/lib/libc/gen/getgrent.c +++ b/lib/libc/gen/getgrent.c @@ -929,12 +929,12 @@ docompat: errnop); break; case nss_lt_id: - rv = _nsdispatch(discard, dtab, NSDB_GROUP_COMPAT, + rv = _nsdispatch(&discard, dtab, NSDB_GROUP_COMPAT, "getgrgid_r", compatsrc, gid, grp, buffer, bufsize, errnop); break; case nss_lt_name: - rv = _nsdispatch(discard, dtab, NSDB_GROUP_COMPAT, + rv = _nsdispatch(&discard, dtab, NSDB_GROUP_COMPAT, "getgrnam_r", compatsrc, name, grp, buffer, bufsize, errnop); break; @@ -945,7 +945,7 @@ docompat: break; case COMPAT_MODE_NAME: set_lookup_type(dtab, nss_lt_name); - rv = _nsdispatch(discard, dtab, NSDB_GROUP_COMPAT, + rv = _nsdispatch(&discard, dtab, NSDB_GROUP_COMPAT, "getgrnam_r", compatsrc, st->name, grp, buffer, bufsize, errnop); switch (rv) { -- cgit v1.1