[package] uhttpd: fix possible CGI header line parsing beyound the empty line, thanks Linus Luessing for spotting it

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28254 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Jo-Philipp Wich 2011-09-18 22:30:20 +00:00
parent e327db6d62
commit 65866b3bba
2 changed files with 5 additions and 5 deletions

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=uhttpd PKG_NAME:=uhttpd
PKG_RELEASE:=26 PKG_RELEASE:=27
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_CONFIG_DEPENDS := \ PKG_CONFIG_DEPENDS := \

View File

@ -1,7 +1,7 @@
/* /*
* uhttpd - Tiny single-threaded httpd - CGI handler * uhttpd - Tiny single-threaded httpd - CGI handler
* *
* Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org> * Copyright (C) 2010-2011 Jo-Philipp Wich <xm@subsignal.org>
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -42,7 +42,7 @@ static struct http_response * uh_cgi_header_parse(char *buf, int len, int *off)
bufptr = &buf[0]; bufptr = &buf[0];
for( pos = 0; pos < len; pos++ ) for( pos = 0; pos < off; pos++ )
{ {
if( !hdrname && (buf[pos] == ':') ) if( !hdrname && (buf[pos] == ':') )
{ {
@ -60,11 +60,11 @@ static struct http_response * uh_cgi_header_parse(char *buf, int len, int *off)
else if( (buf[pos] == '\r') || (buf[pos] == '\n') ) else if( (buf[pos] == '\r') || (buf[pos] == '\n') )
{ {
buf[pos++] = 0;
if( ! hdrname ) if( ! hdrname )
break; break;
buf[pos++] = 0;
if( (pos < len) && (buf[pos] == '\n') ) if( (pos < len) && (buf[pos] == '\n') )
pos++; pos++;