summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/expat/expat/CVE-2023-52425-0004.patch
blob: 35e8e0b1e5597f34da10cd727a7e66fb654dd25d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
From 1b9d398517befeb944cbbadadf10992b07e96fa2 Mon Sep 17 00:00:00 2001
From: Snild Dolkow <snild@sony.com>
Date: Mon, 4 Sep 2023 17:21:14 +0200
Subject: [PATCH] [PATCH] Don't update partial token heuristic on error

Suggested-by: Sebastian Pipping <sebastian@pipping.org>

CVE: CVE-2023-52425

Upstream-Status: Backport [https://github.com/libexpat/libexpat/commit/1b9d398517befeb944cbbadadf10992b07e96fa2]

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
---
 lib/xmlparse.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 5695417..5c66f54 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -979,11 +979,13 @@ callProcessor(XML_Parser parser, const char *start, const char *end,
     }
   }
   const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr);
-  // if we consumed nothing, remember what we had on this parse attempt.
-  if (*endPtr == start) {
-    parser->m_partialTokenBytesBefore = have_now;
-  } else {
-    parser->m_partialTokenBytesBefore = 0;
+  if (ret == XML_ERROR_NONE) {
+    // if we consumed nothing, remember what we had on this parse attempt.
+    if (*endPtr == start) {
+      parser->m_partialTokenBytesBefore = have_now;
+    } else {
+      parser->m_partialTokenBytesBefore = 0;
+    }
   }
   return ret;
 }
-- 
2.40.0