diff --git a/quark.c b/quark.c index 89a3a60..d4c5a04 100644 --- a/quark.c +++ b/quark.c @@ -444,8 +444,8 @@ request(void) { ssize_t r; size_t offset = 0; - /* read request into reqbuf (MAXBUFLEN byte of reqbuf is emergency 0 terminator */ - for (; (r = read(req.fd, reqbuf + offset, MAXBUFLEN - offset)) > 0 && offset < MAXBUFLEN + /* read request into reqbuf (MAXBUFLEN byte of reqbuf is emergency 0 terminator) */ + for (; (r = read(req.fd, reqbuf + offset, MAXBUFLEN - offset - 1)) > 0 && offset < MAXBUFLEN && !strstr(reqbuf, "\r\n\r\n") && !strstr(reqbuf, "\n\n"); ) { offset += r;