On Sun, Aug 18, 2002 at 12:55:27AM -0400, Yuri Victorovich wrote:
> Is it a bug that function "sock_host" is declared
> sock_host() in /usr/include/tcpd.h
> but defined as sock_host(struct request_info *)
> in /usr/src/contrib/tcp_wrappers/socket.c ?

A fucntion which is declared with no arguments (eg sock_host())
is assumed to be a function defined in the K&R way. Argument number
and types don't need to be known. To decalre a function which takes
no arguments (and which has an ANSI style definition) you say
"function(void)".  So this prototype is correct because the definition
in socket.c is a K&R definition.

Bruce tells me that gcc has some magic which allows K&R function
definitions to work OK with ANSI prototypes, as long as the prototype
is visable both where the function is defined and where then function
is used. Otherwise, mixing K&R and ANSI can have unexpected side
effects.

> MySQL on Alpha gives "unaligned access..."
> error because they use it w/out an argument and
> actual libwrap expects an argument.

The bug would seem to be calling sock_host without an argument.
I've been considering adding ANSI prototypes to tcpd.h, so we
get more useful warnings from it.

        David.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to