wget: do not abort if "_" is encountered in a HTTP header

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-07-01 15:01:50 +02:00
parent 1bf560e9c3
commit ea267d518f

View File

@ -328,8 +328,16 @@ static char *gethdr(FILE *fp)
return NULL; return NULL;
/* convert the header name to lower case */ /* convert the header name to lower case */
for (s = G.wget_buf; isalnum(*s) || *s == '-' || *s == '.'; ++s) { for (s = G.wget_buf; isalnum(*s) || *s == '-' || *s == '.' || *s == '_'; ++s) {
/* tolower for "A-Z", no-op for "0-9a-z-." */ /*
* No-op for 20-3f and 60-7f. "0-9a-z-." are in these ranges.
* 40-5f range ("@A-Z[\]^_") maps to 60-7f.
* "A-Z" maps to "a-z".
* "@[\]" can't occur in header names.
* "^_" maps to "~,DEL" (which is wrong).
* "^" was never seen yet, "_" was seen from web.archive.org
* (x-archive-orig-x_commoncrawl_Signature: HEXSTRING).
*/
*s |= 0x20; *s |= 0x20;
} }