Date: Fri, 21 Sep 2012 13:36:54 +0200 From: Jilles Tjoelker <jilles@stack.nl> To: Devin Teske <dteske@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r240770 - in head/usr.sbin/bsdconfig: . console mouse networking networking/share share startup startup/share timezone/share usermgmt/share Message-ID: <20120921113654.GA7865@stack.nl> In-Reply-To: <201209210136.q8L1aKiF031991@svn.freebsd.org> References: <201209210136.q8L1aKiF031991@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 21, 2012 at 01:36:20AM +0000, Devin Teske wrote: > Author: dteske > Date: Fri Sep 21 01:36:20 2012 > New Revision: 240770 > URL: http://svn.freebsd.org/changeset/base/240770 > Log: > Replace redirections to /dev/null with "close file-descriptor" syntax (>&-). > Reviewed by: adrian (co-mentor) > Approved by: adrian (co-mentor) > [snip] > Modified: head/usr.sbin/bsdconfig/bsdconfig > ============================================================================== > --- head/usr.sbin/bsdconfig/bsdconfig Fri Sep 21 00:36:35 2012 (r240769) > +++ head/usr.sbin/bsdconfig/bsdconfig Fri Sep 21 01:36:20 2012 (r240770) > @@ -73,7 +73,7 @@ usage() > # Determine the maximum width of terminal/console > # > local max_size max_width > - max_size=$( stty size 2> /dev/null ) > + max_size=$( stty size 2>&- ) > : ${max_size:="24 80"} > max_width="${max_size#*[$IFS]}" > f_dprintf "max_width=[$max_width]" > [snip] This change is risky because it may cause error messages to be written to unexpected files. The first file the utility opens will be fd 2, and if something decides to write an error message to fd 2 it will try to write to that file. For this reason, the kernel will automatically open /dev/null if you execute suid/sgid binaries with fd 0, 1 and/or 2 closed. Particularly with fd 1 (>&-) there is another danger in that the output may fail with [EBADF] rather than being silently discarded. This may cause unexpected failures. If the reason is that there may be no /dev/null, then you will have to change the environment such that there will be a /dev/null. -- Jilles Tjoelker
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120921113654.GA7865>