From 4a7f419877607b735b26c56dacd566023c3d7da7 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 10 Apr 2016 20:08:02 +0200 Subject: xml: stricter check of entity: must end with ';', ... ... zero output buffer if codepoint length is 0 --- xml.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'xml.c') diff --git a/xml.c b/xml.c index 5c23a6b..178b8ed 100644 --- a/xml.c +++ b/xml.c @@ -280,10 +280,9 @@ xml_numericentitytostr(const char *e, char *buf, size_t bufsiz) else l = strtoul(e, &end, 10); /* invalid value or not a well-formed entity */ - if (errno != 0 || (*end != '\0' && *end != ';')) - return 0; - if (!(len = xml_codepointtoutf8(l, &cp))) + if (errno || *end != ';') return 0; + len = xml_codepointtoutf8(l, &cp); /* make string */ for (b = 0; b < len; b++) buf[b] = (cp >> (8 * (len - 1 - b))) & 0xff; -- cgit v1.2.3