diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-09-11 14:59:21 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-09-11 14:59:21 +0200 |
commit | fbe250db76b409a99457b47486a09b57677d5108 (patch) | |
tree | 1b222f195c0947502c46d375e35f549eb4cbe9b0 /shell/hush_test/hush-trap/signal_read1.right | |
parent | b5352078a7eb16c33404a8b079aaa9c2b994546c (diff) | |
download | busybox-fbe250db76b409a99457b47486a09b57677d5108.tar.gz |
httpd: treat errors from stdin correctly.
Fron bug report:
If a CGI or proxied connection is rudely aborted (SIG_{KILL,BUS,SEGV})
then httpd will spin madly the poll loop in:
networking/httpd.c:1080
cgi_io_loop_and_exit()
Upon investigation I found that pfd[0].revents == 0x0018 (POLLHUP|POLLERR),
which leads to empty read, but the pfd[0].fd (STDIN_FILENO) is left open,
and in the FD list given to poll() which immediately returns to once
again inform the loop of (POLLHUP|POLLERR) condition of pfd[0].fd.
This continues until pfd[FROM_CGI].revents != 0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test/hush-trap/signal_read1.right')
0 files changed, 0 insertions, 0 deletions