summaryrefslogtreecommitdiff
path: root/tests/misc/nice
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-10-28 14:36:09 -0600
committerEric Blake <ebb9@byu.net>2009-10-28 21:12:41 -0600
commit1c59bb3cefff73c532033863e60e9130892a50dd (patch)
tree42f89ad649d5be625ac200f044c3f7acd5ee5e08 /tests/misc/nice
parent536a1fbe5ff47078d515a41ea4b45c4e0d794da2 (diff)
downloadcoreutils-1c59bb3cefff73c532033863e60e9130892a50dd.tar.xz
nice, nohup, su: detect write failure to stderr
These programs can print non-fatal diagnostics to stderr prior to exec'ing a subsidiary program. However, if we thought the situation warranted a diagnostic, we insist that the diagnostic be printed without error, rather than blindly exec, as it may be a security risk. For an example, try 'nice -n -1 nice 2>/dev/full'. Failure to raise priority (by lowering niceness) is not fatal, but failure to inform the user about failure to change priority is dangerous. * src/nice.c (main): Declare failure if writing advisory message to stderr fails. * src/nohup.c (main): Likewise. * src/su.c (main): Likewise. * tests/misc/nice: Test this. * tests/misc/nohup: Likewise. * NEWS: Document this.
Diffstat (limited to 'tests/misc/nice')
-rwxr-xr-xtests/misc/nice6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/misc/nice b/tests/misc/nice
index cf4d96b23..f85666e34 100755
--- a/tests/misc/nice
+++ b/tests/misc/nice
@@ -82,6 +82,12 @@ if test x`nice -n -1 nice 2> /dev/null` = x0 ; then
mv err exp || framework_failure
nice --1 true 2> err || fail=1
compare exp err || fail=1
+ # Failure to write advisory message is fatal. Buggy through coreutils 8.0.
+ if test -w /dev/full && test -c /dev/full; then
+ nice -n -1 nice > out 2> /dev/full
+ test $? = 125 || fail=1
+ test -s out && fail=1
+ fi
else
# superuser - change succeeds
nice -n -1 nice 2> err || fail=1