diff --git a/src/httpp/httpp.c b/src/httpp/httpp.c index 1a49eadf8774d2cbd6c6dc944f091fbf65e3d9c3..01b8bf2158915ef64b8bd6db26388e4b4f85d036 100644 --- a/src/httpp/httpp.c +++ b/src/httpp/httpp.c @@ -73,6 +73,8 @@ static int split_headers(char *data, unsigned long len, char **line) if (data[i] == '\n') { lines++; data[i] = '\0'; + if (lines >= MAX_HEADERS) + return MAX_HEADERS; if (i + 1 < len) { if (data[i + 1] == '\n' || data[i + 1] == '\r') break; @@ -82,7 +84,7 @@ static int split_headers(char *data, unsigned long len, char **line) } i++; - while (data[i] == '\n') i++; + while (i < len && data[i] == '\n') i++; return lines; }