Date: Tue, 21 Jun 2011 19:13:48 +0000 (UTC) From: Jamie Gritton <jamie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r223368 - projects/jailconf/usr.sbin/jail Message-ID: <201106211913.p5LJDmMZ013029@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106211913.p5LJDmMZ013029>