Subject: lib/32616: Syntax error in debug version of file lib/libc/net/gethanamaddr.c
To: None <lib-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <yves-emmanuel.jutard@fr.thalesgroup.com>
List: netbsd-bugs
Date: 01/24/2006 15:30:00
>Number: 32616
>Category: lib
>Synopsis: Syntax error in debug version of file lib/libc/net/gethanamaddr.c
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jan 24 15:30:00 +0000 2006
>Originator: Yves-Emmanuel JUTARD
>Release: 3.0.0
>Organization:
THALES Communications France
>Environment:
custom environment : recompiled from /src, only some parts of NetBSD are used (TCP/IP stack and some parts of the kernel). Target : PPC custom board.
Compiler used : Metrowerks CodeWarrior embedded PPC 8.1
>Description:
if the macro 'DEBUG' is set, a function is defined localy in file 'lib/libc/net/gethanamaddr.c'
l. 136, 'dprintf' is defined with 'res_state *' as its second argument, which looks like a pointer.
However, 'res_state' is ALREADY a pointer on 'struct __res_state' (defined in include/resolv.h). So the second arg is in fact a pointer on a pointer. But in the function, the fields of struct __res_state are accessed directly like if it was a simple pointer. And every call of dprintf is done with a 'res_state' as second arg, not a 'res_state *'.
It really looks like the function prototype is incorrect, both regarding its implementation and its use. I guess that no one must have recompiled this file with 'DEBUG' option for a while. My compiler yell as soon as I try.
>How-To-Repeat:
try to compile 'lib/libc/net/gethanamaddr.c' with macro DEBUG defined.
>Fix:
Correct the prototype of function 'dprintf' in DEBUG mode.