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 CVE-2024-45492 Reported by TaiYou Change-Id: Ic152fd5352442dc60db0358226118a0ad3021bc5 --- lib/xmlparse.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/xmlparse.c b/lib/xmlparse.c index 99bf2411..977079f9 100644 --- a/lib/xmlparse.c +++ b/lib/xmlparse.c @@ -6494,6 +6494,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(groupSize * sizeof(int)); if (!dtd->scaffIndex) return -1;