From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Sadaf Ebrahimi Date: Thu, 2 Jun 2022 19:32:22 +0000 Subject: [PATCH] Prevent XML_GetBuffer signed integer overflow Bug: http://b/221255869 Change-Id: I38758fae8c71184f728f95e6073457cdb86bcc29 (cherry picked from commit d6a09f1b7fb24dd03dc58e45062ad951a37ff8e3) Merged-In: I38758fae8c71184f728f95e6073457cdb86bcc29 --- lib/xmlparse.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/xmlparse.c b/lib/xmlparse.c index 0655e080..ee4de203 100644 --- a/lib/xmlparse.c +++ b/lib/xmlparse.c @@ -1738,6 +1738,11 @@ XML_GetBuffer(XML_Parser parser, int len) if (keep > XML_CONTEXT_BYTES) keep = XML_CONTEXT_BYTES; + /* Detect and prevent integer overflow */ + if (keep > INT_MAX - neededSize) { + errorCode = XML_ERROR_NO_MEMORY; + return NULL; + } neededSize += keep; #endif /* defined XML_CONTEXT_BYTES */ if (neededSize <= bufferLim - buffer) {