From 008fbe53e3cfb0984ff7521ccb3ea8d568876e06 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 19 Mar 2010 13:32:24 +0000 Subject: [PATCH] uhttpd: accept wrongly terminated cgi headers, needed for X-Wrt --- contrib/package/uhttpd/src/uhttpd-cgi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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)); -- 2.11.0