From 81982ab17985155fc72277a078cd76ba73545559 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 2 Mar 2010 12:59:29 +0000 Subject: main/busybox: fix for httpd fixes #300 (cherry picked from commit a3000292c2ad297acb9247c17009c9f380cfdc4c) --- ...remove-safe_-it-seems-we-had-a-few-incorr.patch | 142 +++++++++++++++++++++ main/busybox/APKBUILD | 4 +- 2 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.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 new file mode 100644 index 00000000..0ebeac56 --- /dev/null +++ b/main/busybox/0001-Revert-add-remove-safe_-it-seems-we-had-a-few-incorr.patch @@ -0,0 +1,142 @@ +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 86bb6672..2f43d3e8 100644 --- a/main/busybox/APKBUILD +++ b/main/busybox/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=busybox pkgver=1.16.0 -pkgrel=2 +pkgrel=3 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net license="GPL-2" @@ -19,6 +19,7 @@ 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 @@ -70,4 +71,5 @@ 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" -- cgit v1.2.3