From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Mon, 19 Aug 2024 22:37:16 +0200 Subject: [PATCH] lib: Detect integer overflow in function nextScaffoldPart Reported by TaiYou --- lib/xmlparse.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/xmlparse.c b/lib/xmlparse.c index afcc1de9..18d9201c 100644 --- a/lib/xmlparse.c +++ b/lib/xmlparse.c @@ -7301,6 +7301,15 @@ nextScaffoldPart(XML_Parser parser) { int next; if (! dtd->scaffIndex) { + /* Detect and prevent integer overflow. + * The preprocessor guard addresses the "always false" warning + * from -Wtype-limits on platforms where + * sizeof(unsigned int) < sizeof(size_t), e.g. on x86_64. */ +#if UINT_MAX >= SIZE_MAX + if (parser->m_groupSize > ((size_t)(-1) / sizeof(int))) { + return -1; + } +#endif dtd->scaffIndex = (int *)MALLOC(parser, parser->m_groupSize * sizeof(int)); if (! dtd->scaffIndex) return -1;