changeset 13128:62c8eadd09d2

fts: Fixed a crash in HTML parser.
author Timo Sirainen <tss@iki.fi>
date Wed, 03 Aug 2011 18:58:45 +0300
parents 5b7cc753f7c8
children 4ed44f06c54c
files src/plugins/fts/fts-parser-html.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/fts/fts-parser-html.c	Wed Aug 03 18:54:19 2011 +0300
+++ b/src/plugins/fts/fts-parser-html.c	Wed Aug 03 18:58:45 2011 +0300
@@ -213,10 +213,14 @@
 		buffer_append(parser->input, block->data, size);
 		size = parse_data(parser, parser->input->data,
 				  parser->input->used);
-
-		i_assert(size >= buf_orig_size);
-		block->data += size - buf_orig_size;
-		block->size -= size - buf_orig_size;
+		if (size == 0) {
+			/* we're at EOF and can't finish this */
+			i_assert(block->size == 0);
+		} else {
+			i_assert(size >= buf_orig_size);
+			block->data += size - buf_orig_size;
+			block->size -= size - buf_orig_size;
+		}
 		buffer_set_used_size(parser->input, 0);
 	}
 	size = parse_data(parser, block->data, block->size);