From: Jo-Philipp Wich Date: Fri, 19 Mar 2010 13:32:24 +0000 (+0000) Subject: uhttpd: accept wrongly terminated cgi headers, needed for X-Wrt X-Git-Tag: 0.10.0~807 X-Git-Url: http://207.154.207.93/?a=commitdiff_plain;h=008fbe53e3cfb0984ff7521ccb3ea8d568876e06;p=project%2Fluci.git uhttpd: accept wrongly terminated cgi headers, needed for X-Wrt --- diff --git a/contrib/package/uhttpd/src/uhttpd-cgi.c b/contrib/package/uhttpd/src/uhttpd-cgi.c index 2a9fdc9e1..93caf5add 100644 --- a/contrib/package/uhttpd/src/uhttpd-cgi.c +++ b/contrib/package/uhttpd/src/uhttpd-cgi.c @@ -12,9 +12,10 @@ static struct http_response * uh_cgi_header_parse(char *buf, int len, int *off) static struct http_response res; - if( (bufptr = strfind(buf, len, "\r\n\r\n", 4)) != NULL ) - { - *off = (int)(bufptr - buf) + 4; + if( ((bufptr = strfind(buf, len, "\r\n\r\n", 4)) != NULL) || + ((bufptr = strfind(buf, len, "\n\n", 2)) != NULL) + ) { + *off = (int)(bufptr - buf) + ((bufptr[1] == '\r') ? 4 : 2); memset(&res, 0, sizeof(res));