Send error 400 when content-size is 0 or omitted for POST

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5246 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
brain 2006-09-14 11:42:03 +00:00
parent 0f66106f8c
commit 3b809f52ad

View File

@ -220,12 +220,19 @@ class HttpSocket : public InspSocket
postsize = atoi(header_item.c_str()); postsize = atoi(header_item.c_str());
} }
} }
Instance->Log(DEBUG,"%d bytes to read for POST",postsize); if (!postsize)
std::string::size_type x = headers.str().find("\r\n\r\n"); {
postdata = headers.str().substr(x+5, headers.str().length()); SendHeaders(0, 400, "");
/* Get content length and store */ }
if (postdata.length() >= postsize) else
ServeData(); {
Instance->Log(DEBUG,"%d bytes to read for POST",postsize);
std::string::size_type x = headers.str().find("\r\n\r\n");
postdata = headers.str().substr(x+5, headers.str().length());
/* Get content length and store */
if (postdata.length() >= postsize)
ServeData();
}
} }
else if (InternalState == HTTP_SERVE_RECV_POSTDATA) else if (InternalState == HTTP_SERVE_RECV_POSTDATA)
{ {
@ -233,9 +240,7 @@ class HttpSocket : public InspSocket
amount += strlen(data); amount += strlen(data);
postdata.append(data); postdata.append(data);
if (amount >= postsize) if (amount >= postsize)
{
ServeData(); ServeData();
}
} }
else else
{ {