From cb8a4c756d057b948c1b41e7185dd69ef3ade3fb Mon Sep 17 00:00:00 2001 From: Karl Waclawek Date: Tue, 9 Jul 2002 18:29:23 +0000 Subject: [PATCH] Fix for bug #579196. --- expat/lib/xmlparse.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c index 0384717b..2451afc3 100644 --- a/expat/lib/xmlparse.c +++ b/expat/lib/xmlparse.c @@ -3553,6 +3553,8 @@ doProlog(XML_Parser parser, if (dtd.in_eldecl) { ELEMENT_TYPE *el; + const XML_Char *name; + int nameLen; const char *nxt = quant == XML_CQUANT_NONE ? next : next - enc->minBytesPerChar; int myindex = nextScaffoldPart(parser); if (myindex < 0) @@ -3562,8 +3564,11 @@ doProlog(XML_Parser parser, el = getElementType(parser, enc, s, nxt); if (! el) return XML_ERROR_NO_MEMORY; - dtd.scaffold[myindex].name = el->name; - dtd.contentStringLen += nxt - s + 1; + name = el->name; + dtd.scaffold[myindex].name = name; + nameLen = 0; + for (; name[nameLen++]; ); + dtd.contentStringLen += nameLen; } break; -- 2.40.0