diff --git a/ChangeLog b/ChangeLog index 993934c3..cc75e5a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 12 10:37:42 CEST 2007 Daniel Veillard + + * HTMLparser.c: fixed bug #381877, avoid reading over the end + of stream when generating an UTF-8 encoding error. + Tue Jun 12 10:16:48 CEST 2007 Daniel Veillard * parser.c: fixed bug #366161, trivially added the check in diff --git a/HTMLparser.c b/HTMLparser.c index 29aa89a8..91d54c7a 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -401,9 +401,13 @@ encoding_error: { char buffer[150]; - snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n", - ctxt->input->cur[0], ctxt->input->cur[1], - ctxt->input->cur[2], ctxt->input->cur[3]); + if (ctxt->input->end - ctxt->input->cur >= 4) { + snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n", + ctxt->input->cur[0], ctxt->input->cur[1], + ctxt->input->cur[2], ctxt->input->cur[3]); + } else { + snprintf(buffer, 149, "Bytes: 0x%02X\n", ctxt->input->cur[0]); + } htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, "Input is not proper UTF-8, indicate encoding !\n", BAD_CAST buffer, NULL);