Subject: Re: Problem applying Security Advisory 2007-003 fix
To: None <netbsd-help@netbsd.org>
From: Jeff_W <jgw@tx0.org>
List: netbsd-help
Date: 03/14/2007 19:08:08
"David H. Gutteridge" <dhgutteridge@sympatico.ca> wrote:
> >Well, not really but thanks just the same. :)
> >
> >Updating ../forward.h still fails in the same place with the same error.
>
> Yes, that'll teach me to respond to emails at three in the morning.
> At a minimum, you would have needed to update dist/bind/lib/dns/forward.c
> as well, since that's where the function is actually defined. (Details,
> details...) But I'd agree it was safer to update the whole tree anyway.
>
> >I then updated all of ../src/dist/bind and tried rebuilding. It too
> >failed,
> >but it's something different:
> >
> >...
> ># compile libisc/entropy.o
> >cc -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
> >-Wno-sign-compare -W
> >no-traditional -Wno-uninitialized -Werror
> >-I/usr/src/usr.sbin/bind/include -I/usr/src/dist/bind/lib/dns/include
> >-I/usr/src/dist/bind/lib/dns/unix/include
> >-I/usr/src/dist/bind/lib/isc/include
> >-I/usr/src/dist/bind/lib/isc/unix/include
> >-I/usr/src/dist/bind/lib/bind9/include
> >-I/usr/src/dist/bind/lib/isccfg/include
> >-I/usr/src/dist/bind/lib/isccc/include
> >-I/usr/src/dist/bind/lib/lwres/include
> >-I/usr/src/dist/bind/lib/lwres/unix/include
> >-I/usr/src/dist/bind/lib/dns/sec/dst/include -DNS_LOCALSTATEDIR=\"/var\"
> >-DNS_SYSCONFDIR=\"/etc\" -DVERSION=\"9.3.2nb1\" -DWANT_IPV6
> >-DLIBINTERFACE=11 -DLIBREVISION=1 -DLIBAGE=0 -DISC_PLATFORM_USETHREADS
> >-I/usr/src/dist/bind/lib/isc/pthreads/include -c
> >/usr/src/dist/bind/lib/isc/unix/entropy.c -o entropy.o.tmp
> >/usr/src/dist/bind/lib/isc/unix/entropy.c: In function `make_nonblock':
> >/usr/src/dist/bind/lib/isc/unix/entropy.c:457: error: `PORT_NONBLOCK'
> >undeclared (first use in this function)
> >/usr/src/dist/bind/lib/isc/unix/entropy.c:457: error: (Each undeclared
> >identifier is reported only once
> >/usr/src/dist/bind/lib/isc/unix/entropy.c:457: error: for each function it
> >appears in.)
> >/usr/src/dist/bind/lib/isc/unix/entropy.c: In function
> >`isc_entropy_createfilesource':
> >/usr/src/dist/bind/lib/isc/unix/entropy.c:515: error: `PORT_NONBLOCK'
> >undeclared (first use in this function)
> >*** Error code 1
> >
> >Stop.
> >make: stopped in /usr/src/usr.sbin/bind/libisc
> >*** Error code 1
> >
> >Stop.
> >make: stopped in /usr/src/usr.sbin/bind/libisc
> >*** Error code 1
> >
> >Stop.
> >make: stopped in /usr/src/usr.sbin/bind
> >
> >--
> >
> >Near the top of /usr/src/dist/bind/lib/isc/unix/entropy.c is this message:
> >
> >...
> >/*
> > * There is only one variable in the entropy data structures that is not
> > * system independent, but pulling the structure that uses it into this
> >file
> > * ultimately means pulling several other independent structures here also
> >to
> > * resolve their interdependencies. Thus only the problem variable's type
> > * is defined here.
> > */
> >#define FILESOURCE_HANDLE_TYPE int
> >
> >typedef struct {
> > int handle;
> > enum {
> > isc_usocketsource_disconnected,
> > isc_usocketsource_connecting,
> > isc_usocketsource_connected,
> > isc_usocketsource_ndesired,
> > isc_usocketsource_wrote,
> > isc_usocketsource_reading
> > } status;
> > size_t sz_to_recv;
> >} isc_entropyusocketsource_t;
> >
> >#include "../entropy.c"
> >...
> >
> >Don't know if it's relevant but given the error message it seems possible.
> >Maybe I should just wait until the next system upgrade (4.0 ought to be
> >out sometime this year...).
>
> The macro PORT_NONBLOCK isn't getting defined anywhere for some
> reason. What version of dist/bind/lib/bind/configure.in is in your tree?
> (The correct one should include a definition of that macro. If you
> updated everything, it should have got pulled in, but give it a grep.)
from my copy of /usr/src/dist/bind/lib/bind/configure.in:
...
AC_REVISION($Revision: 1.1.1.2.4.1 $)
AC_INIT(resolv/herror.c)
AC_PREREQ(2.13)
...
PORT_NONBLOCK="#define PORT_NONBLOCK O_NONBLOCK"
...
So it is getting defined here but not coming into the build process prior
to /usr/src/dist/bind/lib/isc/unix/entropy.c . Weird. Maybe I'll just
update the whole src tree and try again, and if it still fails I'll wait
until 4.0 comes out; the risk of this issue is almost nil for me.
Thanks though for all your help; trying to figure out these sort of things
really helps me learn about the system.
Cheers,
Jeff