Patch from Vladimir N. Oleynik:

On Wed Aug 18, 2004 at 06:52:57PM +0800, Matt Johnston wrote:
> I've come across some strange-seeming behaviour when running programs
> under Busybox (1.0.0-rc3) ash. If the child process sets stdin to be
> non-blocking and then exits, the parent ash will also exit. A quick strace
> shows that a subsequent read() from stdin returns EAGAIN (as would be
> expected):

Thanks!
Patch attached.


--w
vodz
This commit is contained in:
Eric Andersen 2004-08-19 18:22:13 +00:00
parent 9ab4657c89
commit cb01bb1d68
2 changed files with 2 additions and 1 deletions

View File

@ -6062,7 +6062,7 @@ retry:
} }
goto retry; goto retry;
} }
if(nr < 0) { if(nr < 0 && errno == 0) {
/* Ctrl+D presend */ /* Ctrl+D presend */
nr = 0; nr = 0;
} }

View File

@ -1297,6 +1297,7 @@ int cmdedit_read_input(char *prompt, char command[BUFSIZ])
/* Control-d -- Delete one character, or exit /* Control-d -- Delete one character, or exit
* if the len=0 and no chars to delete */ * if the len=0 and no chars to delete */
if (len == 0) { if (len == 0) {
errno = 0;
prepare_to_die: prepare_to_die:
#if !defined(CONFIG_ASH) #if !defined(CONFIG_ASH)
printf("exit"); printf("exit");