[git commit prelink 1/1] parse_config: discard rest of incomplete line

Natanael Copa natanael.copa at gmail.com
Sun Nov 28 19:50:38 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=6e74339e7d762857579169068b060a4fd3f345c4
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/prelink

If line is longer then size of given buffer and buffer is not allocated by
the config parser itself, then discard rest of line.

Signed-off-by: Natanael Copa <natanael.copa at gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 libc/misc/internals/parse_config.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/libc/misc/internals/parse_config.c b/libc/misc/internals/parse_config.c
index 6d3b6f4..c17d255 100644
--- a/libc/misc/internals/parse_config.c
+++ b/libc/misc/internals/parse_config.c
@@ -79,6 +79,13 @@ static off_t bb_get_chunk_with_continuation(parser_t* parsr)
 			 parsr->data = realloc(parsr->data,
 								   parsr->data_len + parsr->line_len);
 			parsr->line = parsr->data + parsr->data_len;
+		} else {
+			/* discard rest of line if not enough space in buffer */
+			int c;
+			do {
+				c = fgetc(parsr->fp);
+			} while (c != EOF && c != '\n');
+			break;
 		}
 	}
 	return pos;
-- 
1.7.2.2



More information about the uClibc-cvs mailing list