diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c
index 61a14f5..1dc676f 100644
--- a/modules/lua/lua_request.c
+++ b/modules/lua/lua_request.c
@@ -303,6 +303,7 @@ static int req_parsebody(lua_State *L)
if (!crlf) break;
key = (char *) apr_pcalloc(r->pool, 256);
filename = (char *) apr_pcalloc(r->pool, 256);
+ if (end - crlf <= 8) break;
vlen = end - crlf - 8;
buffer = (char *) apr_pcalloc(r->pool, vlen+1);
memcpy(buffer, crlf + 4, vlen);