mirror of
https://github.com/apache/httpd.git
synced 2025-08-05 16:55:50 +03:00
mod_lua: Fix multipart post parsing, so it doesn't include random bytes at the end.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1424723 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
#include "util_script.h"
|
#include "util_script.h"
|
||||||
#include "lua_apr.h"
|
#include "lua_apr.h"
|
||||||
#include "scoreboard.h"
|
#include "scoreboard.h"
|
||||||
|
#include "lua_dbd.h"
|
||||||
|
|
||||||
APLOG_USE_MODULE(lua);
|
APLOG_USE_MODULE(lua);
|
||||||
#define POST_MAX_VARS 500
|
#define POST_MAX_VARS 500
|
||||||
@@ -246,8 +247,8 @@ static int req_parsebody(lua_State *L)
|
|||||||
if (!crlf) break;
|
if (!crlf) break;
|
||||||
key = (char *) apr_pcalloc(r->pool, 256);
|
key = (char *) apr_pcalloc(r->pool, 256);
|
||||||
filename = (char *) apr_pcalloc(r->pool, 256);
|
filename = (char *) apr_pcalloc(r->pool, 256);
|
||||||
buffer = (char *) apr_palloc(r->pool, end - crlf);
|
|
||||||
vlen = end - crlf - 8;
|
vlen = end - crlf - 8;
|
||||||
|
buffer = (char *) apr_pcalloc(r->pool, vlen+1);
|
||||||
memcpy(buffer, crlf + 4, vlen);
|
memcpy(buffer, crlf + 4, vlen);
|
||||||
sscanf(start + len + 2,
|
sscanf(start + len + 2,
|
||||||
"Content-Disposition: form-data; name=\"%255[^\"]\"; filename=\"%255[^\"]\"",
|
"Content-Disposition: form-data; name=\"%255[^\"]\"; filename=\"%255[^\"]\"",
|
||||||
|
Reference in New Issue
Block a user