From 27fcc9c6a6fa9c28b3bb888486fcafc94ffff88a Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 1 Jan 2009 09:35:25 +0000 Subject: [PATCH] Add asserts to detect when assumptions for play_tree_parser_get_line fail (mostly due to parsers using it incorrectly). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28217 b3059339-0415-0410-9bf9-f77b7e298cf2 --- playtreeparser.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/playtreeparser.c b/playtreeparser.c index 0d4c0fe43d..a7e7395698 100644 --- a/playtreeparser.c +++ b/playtreeparser.c @@ -6,9 +6,7 @@ #include #include #include -#ifdef MP_DEBUG #include -#endif #include #include #include @@ -61,6 +59,8 @@ play_tree_parser_get_line(play_tree_parser_t* p) { if(p->stream->eof && (p->buffer_end == 0 || p->iter[0] == '\0')) return NULL; + assert(p->buffer_end < p->buffer_size); + assert(!p->buffer[p->buffer_end]); while(1) { if(resize) { @@ -75,10 +75,12 @@ play_tree_parser_get_line(play_tree_parser_t* p) { r = stream_read(p->stream,p->buffer + p->buffer_end,p->buffer_size - p->buffer_end - 1); if(r > 0) { p->buffer_end += r; + assert(p->buffer_end < p->buffer_size); p->buffer[p->buffer_end] = '\0'; while(strlen(p->buffer + p->buffer_end - r) != r) p->buffer[p->buffer_end - r + strlen(p->buffer + p->buffer_end - r)] = '\n'; } + assert(!p->buffer[p->buffer_end]); } end = strchr(p->iter,'\n');