diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2016-04-10 20:08:02 +0200 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2016-04-10 20:08:02 +0200 |
commit | 4a7f419877607b735b26c56dacd566023c3d7da7 (patch) | |
tree | 8e19fb51ce110cbb965d7fc8d06edbbba33c8cd3 | |
parent | 1226cf84fdae3396499c5e1efc742391e537103a (diff) |
xml: stricter check of entity: must end with ';', ...
... zero output buffer if codepoint length is 0
-rw-r--r-- | xml.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -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; |