From 05240da81832cc922f396e3ff3322666fad47668 Mon Sep 17 00:00:00 2001 From: Raph Levien Date: Tue, 15 Jun 1999 21:27:11 +0000 Subject: [PATCH] Fixed a buffer overrun (exhibits with very long attributes). --- ChangeLog | 5 +++++ parser.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1db94684..050af7e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 15 14:24:19 1999 Raph Levien + + * parser.c: fixed a buffer overrun for when you have a very long + attribute with no entities in it. + Mon Jun 14 00:17:50 CEST 1999 Daniel Veillard * added example directory diff --git a/parser.c b/parser.c index 8161ecdb..7a627edf 100644 --- a/parser.c +++ b/parser.c @@ -459,6 +459,12 @@ xmlDecodeEntities(xmlParserCtxtPtr ctxt, int len, int what, } else { /* TODO: invalid for UTF-8 , use COPY(out); */ *out++ = CUR; + if (out - buffer > buffer_size - 100) { + int index = out - buffer; + + growBuffer(buffer); + out = &buffer[index]; + } NEXT; } }