Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Feb 2015 03:16:59 -0500
From:      Marcus Reid <marcus@blazingdot.com>
To:        =?iso-8859-1?Q?Jean-S=E9bastien_P=E9dron?= <dumbbell@FreeBSD.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: unbound crashes on bootup
Message-ID:  <20150212081659.GA12716@blazingdot.com>
In-Reply-To: <54DB9A0C.1010806@FreeBSD.org>
References:  <1264.1423227963@critter.freebsd.dk> <54DB9A0C.1010806@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 11, 2015 at 07:06:04PM +0100, Jean-Sébastien Pédron wrote:
> On 06.02.2015 14:06, Poul-Henning Kamp wrote:
> > I just updated my -current to r278283, and unbound (still) croaks
> > during bootup:
> 
> Hi!
> 
> I have a similar problem. Also, unbound crashes each time I start/stop
> OpenVPN. I suppose the problem is the same in both cases.
> 
> The crash happens in the config_lookup_uid() in
> contrib/unbound/util/config_file.c. Here's the code:
> 
>     struct passwd *pwd;
>     if((pwd = getpwnam(cfg->username)) == NULL)
>         log_err("user '%s' does not exist.", cfg->username);
>     cfg->uid = pwd->pw_uid;
> 
> getpwnam(3) returns NULL: an error message is logged but the function
> doesn't return. Therefore, the program segfaults on "pwd->pw_uid" on the
> next line.

The reason this crash happens is that unbound is chrooted and there is
no /etc/pwd.db for getpwnam() to look at.

A workaround is to mkdir /var/unbound/etc and put a copy of /etc/pwd.db
into it (or even a reduced version that only contains the unbound user).

I submitted a bug report for this yesterday.

Marcus


> 
> But why did getpwnam(3) return NULL in the first place? It looks for the
> "unbound" user which exists. getpwnam() calls _nsdispatch() which fails.
> 
> I have the default nsswitch.conf. I didn't look at the problem more
> deeply yet, but could getpwnam()/_nsdispatch() be unhappy with the
> absence of a working DNS resolver (unbound is being (re)started)?
> 
> -- 
> Jean-Sébastien Pédron
> 





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150212081659.GA12716>