[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Shell redirection success/failure isn't checked
From: |
Jeff Connelly |
Subject: |
Shell redirection success/failure isn't checked |
Date: |
Fri, 27 Aug 2004 23:28:44 -0700 |
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash'
-DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -O2 -pipe
-fomit-frame-pointer
uname output: Linux amd64 2.6.7-gentoo-r8 #2 Sun Jul 4 22:41:50 PDT
2004 x86_64 4 GNU/Linux
Machine Type: x86_64-pc-linux-gnu
Bash Version: 3.0
Patch Level: 0
Release Status: release
Description:
I'm using:
GNU bash, version 3.00.0(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
and bash doesn't check if shell redirection was successful. I came
across this problem when my hard drive became full. Redirections
wouldn't return any error, but the redirected file would be empty.
Certainly bash should report any errors that occur doing stream
redirection.
For comparison, this is what happens in a shell which will remain
nameless:
% echo foo>bar
echo: write error: no space left on device
On a related note:
bash-3.00$ ulimit -f 0
bash-3.00$ echo foo>bar
File size limit exceeded
(logs out)
I'm not sure if this is a bug. Does it occur because bash tries to open the cwd?
Not logging the user out would be the preferable behavior.
Thanks,
-Jeff Connelly
Repeat-By:
bash-3.00$ dd if=/dev/zero of=junk
dd: writing to `junk': No space left on device
276353+0 records in
276352+0 records out
bash-3.00$ echo foo>bar
bash-3.00$ cat bar
bash-3.00$
Fix:
Should be a simple case of checking return value of fopen().
- Shell redirection success/failure isn't checked,
Jeff Connelly <=