From 5b84acbc14af8df82ab58155c65f2380533bf0ea Mon Sep 17 00:00:00 2001 From: Pavel Khlebovich Date: Mon, 12 Aug 2013 00:47:12 +0400 Subject: [PATCH] Consume \n in mg_fgets when reading from membuf. --- mongoose.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mongoose.c b/mongoose.c index 8b680df6..5831cb2b 100644 --- a/mongoose.c +++ b/mongoose.c @@ -2418,10 +2418,13 @@ static char *mg_fgets(char *buf, size_t size, struct file *filep, char **p) { if (filep->membuf != NULL && *p != NULL) { eof = (char *) memchr(*p, '\n', &filep->membuf[filep->size] - *p); - len = (size_t) (eof - *p) > size - 1 ? size - 1 : (size_t) (eof - *p); - memcpy(buf, *p, len); - buf[len] = '\0'; - *p = eof; + if (eof != NULL) { + eof += 1; // Include \n + len = (size_t) (eof - *p) > size - 1 ? size - 1 : (size_t) (eof - *p); + memcpy(buf, *p, len); + buf[len] = '\0'; + *p = eof; + } return eof; } else if (filep->fp != NULL) { return fgets(buf, size, filep->fp);