From 6ccb0d096dd025dbb7a341c70d7dd8b651d2b142 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 3 Mar 2010 07:19:37 +0000 Subject: main/busybox: use patch from upstream for POLLHUP --- ...remove-safe_-it-seems-we-had-a-few-incorr.patch | 142 --------------------- main/busybox/APKBUILD | 6 +- main/busybox/busybox-1.16.0-POLLHUP.patch | 93 ++++++++++++++ 3 files changed, 96 insertions(+), 145 deletions(-) delete mode 100644 main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch create mode 100644 main/busybox/busybox-1.16.0-POLLHUP.patch diff --git a/main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch b/main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch deleted file mode 100644 index 0ebeac56..00000000 --- a/main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 3aa62731bcc7589a7e77be8b86b954551f06f3af Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Tue, 2 Mar 2010 12:56:23 +0000 -Subject: [PATCH] Revert "*: add/remove safe_, it seems we had a few incorrect uses" - -This reverts commit cb23d93c6845df3f2733a32caa4194e60ef871a7. ---- - miscutils/microcom.c | 7 +++---- - networking/httpd.c | 6 +++--- - networking/telnet.c | 8 ++++---- - networking/udhcp/arpping.c | 2 +- - util-linux/script.c | 4 ++-- - 5 files changed, 13 insertions(+), 14 deletions(-) - -diff --git a/miscutils/microcom.c b/miscutils/microcom.c -index 9a7a41d..fe6661f 100644 ---- a/miscutils/microcom.c -+++ b/miscutils/microcom.c -@@ -117,9 +117,8 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) - - bb_got_signal = 0; - nfd = 2; -- // Not safe_poll: we want to exit on signal -- while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) { -- if (nfd > 1 && (pfd[1].revents & POLLIN)) { -+ while (!bb_got_signal && safe_poll(pfd, nfd, timeout) > 0) { -+ if (nfd > 1 && pfd[1].revents) { - char c; - // read from stdin -> write to device - if (safe_read(STDIN_FILENO, &c, 1) < 1) { -@@ -143,7 +142,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) - safe_poll(pfd, 1, delay); - skip_write: ; - } -- if (pfd[0].revents & POLLIN) { -+ if (pfd[0].revents) { - #define iobuf bb_common_bufsiz1 - ssize_t len; - // read from device -> write to stdout -diff --git a/networking/httpd.c b/networking/httpd.c -index 5bbc7ee..8834c1c 100644 ---- a/networking/httpd.c -+++ b/networking/httpd.c -@@ -1167,7 +1167,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post - break; - } - -- if (pfd[TO_CGI].revents & POLLOUT) { -+ if (pfd[TO_CGI].revents) { - /* hdr_cnt > 0 here due to the way pfd[TO_CGI].events set */ - /* Have data from peer and can write to CGI */ - count = safe_write(toCgi_wr, hdr_ptr, hdr_cnt); -@@ -1184,7 +1184,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post - } - } - -- if (pfd[0].revents & POLLIN) { -+ if (pfd[0].revents) { - /* post_len > 0 && hdr_cnt == 0 here */ - /* We expect data, prev data portion is eaten by CGI - * and there *is* data to read from the peer -@@ -1202,7 +1202,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post - } - } - -- if (pfd[FROM_CGI].revents & POLLIN) { -+ if (pfd[FROM_CGI].revents) { - /* There is something to read from CGI */ - char *rbuf = iobuf; - -diff --git a/networking/telnet.c b/networking/telnet.c -index 344bb0d..5bbad78 100644 ---- a/networking/telnet.c -+++ b/networking/telnet.c -@@ -618,12 +618,12 @@ int telnet_main(int argc UNUSED_PARAM, char **argv) - default: - - #ifdef USE_POLL -- if (ufds[0].revents & POLLIN) -+ if (ufds[0].revents) /* well, should check POLLIN, but ... */ - #else - if (FD_ISSET(STDIN_FILENO, &rfds)) - #endif - { -- len = safe_read(STDIN_FILENO, G.buf, DATABUFSIZE); -+ len = read(STDIN_FILENO, G.buf, DATABUFSIZE); - if (len <= 0) - doexit(EXIT_SUCCESS); - TRACE(0, ("Read con: %d\n", len)); -@@ -631,12 +631,12 @@ int telnet_main(int argc UNUSED_PARAM, char **argv) - } - - #ifdef USE_POLL -- if (ufds[1].revents & POLLIN) -+ if (ufds[1].revents) /* well, should check POLLIN, but ... */ - #else - if (FD_ISSET(netfd, &rfds)) - #endif - { -- len = safe_read(netfd, G.buf, DATABUFSIZE); -+ len = read(netfd, G.buf, DATABUFSIZE); - if (len <= 0) { - write_str(1, "Connection closed by foreign host\r\n"); - doexit(EXIT_FAILURE); -diff --git a/networking/udhcp/arpping.c b/networking/udhcp/arpping.c -index cf18153..c9b421e 100644 ---- a/networking/udhcp/arpping.c -+++ b/networking/udhcp/arpping.c -@@ -96,7 +96,7 @@ int FAST_FUNC arpping(uint32_t test_nip, - if (r < 0) - break; - if (r) { -- r = safe_read(s, &arp, sizeof(arp)); -+ r = read(s, &arp, sizeof(arp)); - if (r < 0) - break; - -diff --git a/util-linux/script.c b/util-linux/script.c -index 37213ee..d9a62fb 100644 ---- a/util-linux/script.c -+++ b/util-linux/script.c -@@ -119,7 +119,7 @@ int script_main(int argc UNUSED_PARAM, char **argv) - * for example, try "script -c true" */ - break; - } -- if (pfd[0].revents & POLLIN) { -+ if (pfd[0].revents) { - errno = 0; - count = safe_read(pty, buf, sizeof(buf)); - if (count <= 0 && errno != EAGAIN) { -@@ -143,7 +143,7 @@ int script_main(int argc UNUSED_PARAM, char **argv) - } - } - } -- if (pfd[1].revents & POLLIN) { -+ if (pfd[1].revents) { - count = safe_read(STDIN_FILENO, buf, sizeof(buf)); - if (count <= 0) { - /* err/eof from stdin: don't read stdin anymore */ --- -1.6.6.1 - diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD index 2f43d3e8..82d7e8b9 100644 --- a/main/busybox/APKBUILD +++ b/main/busybox/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=busybox pkgver=1.16.0 -pkgrel=3 +pkgrel=4 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net license="GPL-2" @@ -10,6 +10,7 @@ install="$pkgname.post-install $pkgname.post-upgrade" triggers="busybox.trigger:/bin /usr/bin /sbin /usr/sbin /lib/modules/*" source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 $pkgname-1.11.1-bb.patch + busybox-1.16.0-POLLHUP.patch busybox-1.16.0-ash.patch busybox-1.16.0-compat.patch busybox-1.16.0-defconfig.patch @@ -19,7 +20,6 @@ source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 busybox-1.16.0-tftp.patch busybox-1.16.0-usage.patch busybox-1.16.0-wget.patch - 0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch busyboxconfig" _builddir="$srcdir"/$pkgname-$pkgver @@ -62,6 +62,7 @@ package() { md5sums="2130884e71a1648bfb63c3250c1d288c busybox-1.16.0.tar.bz2 4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch +6d2d837cace2e681392fa1d1d430ed78 busybox-1.16.0-POLLHUP.patch b788742e46a848c02913c9bd070025b7 busybox-1.16.0-ash.patch 940aff0065f875b165dac59cc7006c6a busybox-1.16.0-compat.patch 118e94315a262a23af66c0d3ad83235e busybox-1.16.0-defconfig.patch @@ -71,5 +72,4 @@ f4758daa8023f000228e9509cceb02d1 busybox-1.16.0-md5_sha_compat.patch e24dc9e56b5de4fff706cfbe5c75d9b2 busybox-1.16.0-tftp.patch 289c8ee19cc43fe175bbd7933c6b5cdf busybox-1.16.0-usage.patch 928ca5a26599cd1dbb80e08132140832 busybox-1.16.0-wget.patch -092adeebfc30b1fad282546d8fdcaa77 0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch 9743e7ecd48f37b0d420f64bef7fb2a8 busyboxconfig" diff --git a/main/busybox/busybox-1.16.0-POLLHUP.patch b/main/busybox/busybox-1.16.0-POLLHUP.patch new file mode 100644 index 00000000..5ace5681 --- /dev/null +++ b/main/busybox/busybox-1.16.0-POLLHUP.patch @@ -0,0 +1,93 @@ +diff -urpN busybox-1.16.0/miscutils/microcom.c busybox-1.16.0-POLLHUP/miscutils/microcom.c +--- busybox-1.16.0/miscutils/microcom.c 2010-01-25 01:59:38.000000000 +0100 ++++ busybox-1.16.0-POLLHUP/miscutils/microcom.c 2010-03-02 23:53:28.000000000 +0100 +@@ -119,7 +119,7 @@ int microcom_main(int argc UNUSED_PARAM, + nfd = 2; + // Not safe_poll: we want to exit on signal + while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) { +- if (nfd > 1 && (pfd[1].revents & POLLIN)) { ++ if (nfd > 1 && pfd[1].revents) { + char c; + // read from stdin -> write to device + if (safe_read(STDIN_FILENO, &c, 1) < 1) { +@@ -143,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, + safe_poll(pfd, 1, delay); + skip_write: ; + } +- if (pfd[0].revents & POLLIN) { ++ if (pfd[0].revents) { + #define iobuf bb_common_bufsiz1 + ssize_t len; + // read from device -> write to stdout +diff -urpN busybox-1.16.0/networking/httpd.c busybox-1.16.0-POLLHUP/networking/httpd.c +--- busybox-1.16.0/networking/httpd.c 2010-01-25 01:59:38.000000000 +0100 ++++ busybox-1.16.0-POLLHUP/networking/httpd.c 2010-03-02 23:53:28.000000000 +0100 +@@ -1167,7 +1167,7 @@ static NOINLINE void cgi_io_loop_and_exi + break; + } + +- if (pfd[TO_CGI].revents & POLLOUT) { ++ if (pfd[TO_CGI].revents) { + /* hdr_cnt > 0 here due to the way pfd[TO_CGI].events set */ + /* Have data from peer and can write to CGI */ + count = safe_write(toCgi_wr, hdr_ptr, hdr_cnt); +@@ -1184,7 +1184,7 @@ static NOINLINE void cgi_io_loop_and_exi + } + } + +- if (pfd[0].revents & POLLIN) { ++ if (pfd[0].revents) { + /* post_len > 0 && hdr_cnt == 0 here */ + /* We expect data, prev data portion is eaten by CGI + * and there *is* data to read from the peer +@@ -1202,7 +1202,7 @@ static NOINLINE void cgi_io_loop_and_exi + } + } + +- if (pfd[FROM_CGI].revents & POLLIN) { ++ if (pfd[FROM_CGI].revents) { + /* There is something to read from CGI */ + char *rbuf = iobuf; + +diff -urpN busybox-1.16.0/networking/telnet.c busybox-1.16.0-POLLHUP/networking/telnet.c +--- busybox-1.16.0/networking/telnet.c 2010-01-25 01:59:38.000000000 +0100 ++++ busybox-1.16.0-POLLHUP/networking/telnet.c 2010-03-02 23:53:28.000000000 +0100 +@@ -618,7 +618,7 @@ int telnet_main(int argc UNUSED_PARAM, c + default: + + #ifdef USE_POLL +- if (ufds[0].revents & POLLIN) ++ if (ufds[0].revents) + #else + if (FD_ISSET(STDIN_FILENO, &rfds)) + #endif +@@ -631,7 +631,7 @@ int telnet_main(int argc UNUSED_PARAM, c + } + + #ifdef USE_POLL +- if (ufds[1].revents & POLLIN) ++ if (ufds[1].revents) + #else + if (FD_ISSET(netfd, &rfds)) + #endif +diff -urpN busybox-1.16.0/util-linux/script.c busybox-1.16.0-POLLHUP/util-linux/script.c +--- busybox-1.16.0/util-linux/script.c 2010-01-25 01:59:39.000000000 +0100 ++++ busybox-1.16.0-POLLHUP/util-linux/script.c 2010-03-02 23:53:28.000000000 +0100 +@@ -119,7 +119,7 @@ int script_main(int argc UNUSED_PARAM, c + * for example, try "script -c true" */ + break; + } +- if (pfd[0].revents & POLLIN) { ++ if (pfd[0].revents) { + errno = 0; + count = safe_read(pty, buf, sizeof(buf)); + if (count <= 0 && errno != EAGAIN) { +@@ -143,7 +143,7 @@ int script_main(int argc UNUSED_PARAM, c + } + } + } +- if (pfd[1].revents & POLLIN) { ++ if (pfd[1].revents) { + count = safe_read(STDIN_FILENO, buf, sizeof(buf)); + if (count <= 0) { + /* err/eof from stdin: don't read stdin anymore */ -- cgit v1.2.3