On Wed, 7 Dec 2005, Ted Unangst wrote:

> On 12/7/05, Federico Giannici <[EMAIL PROTECTED]> wrote:
> > > May it be relevant that the program is run chrootted???
> > >
> > > I'm going to make some tests, as soon as I have the time...
> >
> > Got it!
> > I simply copied  "/etc/resolv.conf" to the chrootted path and the
> > problem disappeared.
> >
> > So something changed beetween 3.7 and 3.8 in the way /etc/resolv.conf is
> > accessed...
> 
> i made some changes to the resolver, though they should deal with this
> situation (unless there's a bug).

I only grepped through the code of openser briefly, but this scenario
seems likely. 

1. App calls res_init() which calls _res_init(1); _resp->restimespe
does not get set 

2. App calls gethostbyname(), all is fine. 

3. App does chroot.  

4. App calls gethostbyname(), which calls _res_init(0). Let's assume
the recheck is done. The stat() will fail, but since _resp->restimespec
is not set, it will fall through and try to read /etc/resolv.conf from
within the chroot.


        -Otto

Reply via email to