Fix out of bound access in cgi module (#11578)

When an HTTP request with a zero CONTENT_LENGTH is made,
attempting to access addr(result[0]) raise an exception as the 0 index
is out of bound

(cherry picked from commit 181350f6c9)
This commit is contained in:
Gérôme Fournier
2019-06-25 02:03:44 +02:00
committed by narimiran
parent 30d7cf02ad
commit 8ab0be4530

View File

@@ -77,6 +77,8 @@ proc getEncodedData(allowedMethods: set[RequestMethod]): string =
if methodPost notin allowedMethods:
cgiError("'REQUEST_METHOD' 'POST' is not supported")
var L = parseInt(getEnv("CONTENT_LENGTH").string)
if L == 0:
return ""
result = newString(L)
if readBuffer(stdin, addr(result[0]), L) != L:
cgiError("cannot read from stdin")