Date: Wed, 9 Mar 2016 21:00:57 +0000 (UTC) From: Jilles Tjoelker <jilles@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r296577 - head/bin/sh Message-ID: <201603092100.u29L0vAc061921@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jilles Date: Wed Mar 9 21:00:57 2016 New Revision: 296577 URL: https://svnweb.freebsd.org/changeset/base/296577 Log: sh: Avoid out-of-bounds access in setoptionbyindex() for 'set -o nolog'. Reported by: hrs Modified: head/bin/sh/options.c Modified: head/bin/sh/options.c ============================================================================== --- head/bin/sh/options.c Wed Mar 9 20:15:03 2016 (r296576) +++ head/bin/sh/options.c Wed Mar 9 21:00:57 2016 (r296577) @@ -285,7 +285,7 @@ minus_o(char *name, int val) static void setoptionbyindex(int idx, int val) { - if (optletter[idx] == 'p' && !val && privileged) { + if (&optval[idx] == &privileged && !val && privileged) { if (setgid(getgid()) == -1) error("setgid"); if (setuid(getuid()) == -1) @@ -294,9 +294,9 @@ setoptionbyindex(int idx, int val) optval[idx] = val; if (val) { /* #%$ hack for ksh semantics */ - if (optletter[idx] == 'V') + if (&optval[idx] == &Vflag) Eflag = 0; - else if (optletter[idx] == 'E') + else if (&optval[idx] == &Eflag) Vflag = 0; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603092100.u29L0vAc061921>