hush: fix fallout from FILE->HFILE conversion
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
440da97ed7
commit
e9dccab9f4
10
shell/hush.c
10
shell/hush.c
@ -1683,9 +1683,15 @@ static void close_all_HFILE_list(void)
|
|||||||
* It is disastrous if we share memory with a vforked parent.
|
* It is disastrous if we share memory with a vforked parent.
|
||||||
* I'm not sure we never come here after vfork.
|
* I'm not sure we never come here after vfork.
|
||||||
* Therefore just close fd, nothing more.
|
* Therefore just close fd, nothing more.
|
||||||
|
*
|
||||||
|
* ">" instead of ">=": we don't close fd#0,
|
||||||
|
* interactive shell uses hfopen(NULL) as stdin input
|
||||||
|
* which has fl->fd == 0, but fd#0 gets redirected in pipes.
|
||||||
|
* If we'd close it here, then e.g. interactive "set | sort"
|
||||||
|
* with NOFORKed sort, would have sort's input fd closed.
|
||||||
*/
|
*/
|
||||||
/*hfclose(fl); - unsafe */
|
if (fl->fd > 0)
|
||||||
if (fl->fd >= 0)
|
/*hfclose(fl); - unsafe */
|
||||||
close(fl->fd);
|
close(fl->fd);
|
||||||
fl = fl->next_hfile;
|
fl = fl->next_hfile;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user