From owner-svn-src-projects@FreeBSD.ORG Tue Jun 21 19:13:48 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEF9610656AC; Tue, 21 Jun 2011 19:13:48 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BFFBF8FC0A; Tue, 21 Jun 2011 19:13:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p5LJDmmu013031; Tue, 21 Jun 2011 19:13:48 GMT (envelope-from jamie@svn.freebsd.org) Received: (from jamie@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p5LJDmMZ013029; Tue, 21 Jun 2011 19:13:48 GMT (envelope-from jamie@svn.freebsd.org) Message-Id: <201106211913.p5LJDmMZ013029@svn.freebsd.org> From: Jamie Gritton Date: Tue, 21 Jun 2011 19:13:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r223368 - projects/jailconf/usr.sbin/jail X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Jun 2011 19:13:48 -0000 Author: jamie Date: Tue Jun 21 19:13:48 2011 New Revision: 223368 URL: http://svn.freebsd.org/changeset/base/223368 Log: Fix a couple of NULL dereferences. Modified: projects/jailconf/usr.sbin/jail/command.c Modified: projects/jailconf/usr.sbin/jail/command.c ============================================================================== --- projects/jailconf/usr.sbin/jail/command.c Tue Jun 21 17:59:51 2011 (r223367) +++ projects/jailconf/usr.sbin/jail/command.c Tue Jun 21 19:13:48 2011 (r223368) @@ -77,6 +77,7 @@ static int check_path(struct cfjail *j, static struct cfjails sleeping = TAILQ_HEAD_INITIALIZER(sleeping); static struct cfjails runnable = TAILQ_HEAD_INITIALIZER(runnable); +static struct cfstring dummystring = { .len = 1 }; static struct phhead phash[PHASH_SIZE]; static int kq; @@ -89,8 +90,6 @@ next_command(struct cfjail *j) enum intparam comparam; int rval, create_failed; - static struct cfstring dummystring = { .len = 1 }; - rval = 0; create_failed = (j->flags & (JF_STOP | JF_FAILED)) == JF_FAILED; for (; (comparam = *j->comparam); @@ -115,7 +114,8 @@ next_command(struct cfjail *j) } } for (; j->comstring != NULL; - j->comstring = create_failed + j->comstring = j->comstring == &dummystring ? NULL : + create_failed ? TAILQ_PREV(j->comstring, cfstrings, tq) : TAILQ_NEXT(j->comstring, tq)) { if (rval != 0) @@ -457,7 +457,7 @@ run_command(struct cfjail *j) TAILQ_FOREACH(s, &j->intparams[IP_COMMAND]->val, tq) argv[argc++] = s->s; argv[argc] = NULL; - j->comstring = NULL; + j->comstring = &dummystring; break; default: