From owner-freebsd-bugs@FreeBSD.ORG Wed Feb 11 10:27:19 2015 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1EBC3EC2 for ; Wed, 11 Feb 2015 10:27:19 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DF248A61 for ; Wed, 11 Feb 2015 10:27:18 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t1BARI2W077546 for ; Wed, 11 Feb 2015 10:27:18 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 197534] Repeatable segfault in unbound when re-reading config Date: Wed, 11 Feb 2015 10:27:19 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: marcus@blazingdot.com X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Feb 2015 10:27:19 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197534 Bug ID: 197534 Summary: Repeatable segfault in unbound when re-reading config Product: Base System Version: 11.0-CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Many People Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: marcus@blazingdot.com Sometimes during normal operation (network interface change, etc.) and when unbound is manually sent a SIGHUP, it reloads its config. When it does that, and it is already chrooted (as per default config in FreeBSD) it crashes. This is due to the following code in contrib/unbound/util/config_file.c: 1200 /* translate username into uid and gid */ 1201 if(cfg->username && cfg->username[0]) { 1202 struct passwd *pwd; 1203 if((pwd = getpwnam(cfg->username)) == NULL) 1204 log_err("user '%s' does not exist.", cfg->username); 1205 cfg->uid = pwd->pw_uid; 1206 cfg->gid = pwd->pw_gid; 1207 } The crash occurs at line 1205. As you can see, even though the call to getpwnam() returns NULL because of a missing /etc/pwd.db in the chroot, an error message is logged but it goes ahead and follows the null pointer pwd->pw_uid anyway. Furthermore, if a copy of /etc/pwd.db is placed in /var/unbound/etc/, the crash does not happen on SIGHUP. -- You are receiving this mail because: You are the assignee for the bug.