summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthijs van de Water2009-08-22 20:19:48 +0200
committerDenys Vlasenko2009-08-22 20:19:48 +0200
commit0d5866624d7551b9cc994853955ff41e8d09dc51 (patch)
tree2e80d032f6b1b3d7a94fa07f586dc85e47d1a9de
parent0da1c0a73298087def5f42be61913b79fd2d9193 (diff)
downloadbusybox-0d5866624d7551b9cc994853955ff41e8d09dc51.zip
busybox-0d5866624d7551b9cc994853955ff41e8d09dc51.tar.gz
wget: strip trailing whitespace from e.g. "Content-length: 120 "
function old new delta wget_main 2395 2427 +32 Signed-off-by: Matthijs van de Water <matthijs.van.de.water@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/wget.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/networking/wget.c b/networking/wget.c
index 26b62cc..b8cd549 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -880,7 +880,14 @@ However, in real world it was observed that some web servers
*/
while ((str = gethdr(buf, sizeof(buf), sfp /*, &n*/)) != NULL) {
/* gethdr converted "FOO:" string to lowercase */
- smalluint key = index_in_strings(keywords, buf) + 1;
+ smalluint key;
+ /* strip trailing whitespace */
+ char *s = strchrnul(str, '\0') - 1;
+ while (s >= str && (*s == ' ' || *s == '\t')) {
+ *s = '\0';
+ s--;
+ }
+ key = index_in_strings(keywords, buf) + 1;
if (key == KEY_content_length) {
content_len = BB_STRTOOFF(str, NULL, 10);
if (errno || content_len < 0) {