BUG/MINOR: tools: make fgets_from_mem() stop at the end of the input

The memchr() used to look for the LF character must consider the end of
input, not just the output buffer size.

This was found by oss-fuzz:
   https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=71096

No backport is needed.
This commit is contained in:
Willy Tarreau 2024-08-11 14:44:28 +02:00
parent 75944e266e
commit 0982bfd999

View File

@ -6681,6 +6681,9 @@ char *fgets_from_mem(char* buf, int size, const char **position, const char *end
return NULL;
size--; /* keep fgets behaviour, reads at most one less than size */
if (size > end - *position)
size = end - *position;
new_pos = memchr(*position, '\n', size);
if (new_pos) {
/* '+1' to grab and copy '\n' at the end of line */