File 0107-Fix-event-state-handling-in-xmerl-sax-parser.patch of Package erlang
From cf228a2df27322f18202571cb647873277a58380 Mon Sep 17 00:00:00 2001
From: Lars Thorsen <lars@erlang.org>
Date: Fri, 3 May 2024 08:29:34 +0200
Subject: [PATCH] Fix event state handling in xmerl sax parser
If the xmerl_sax_parser event state was
updated in an event callback for a startEntity
it was not saved.
---
lib/xmerl/src/xmerl_sax_parser_base.erlsrc | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/xmerl/src/xmerl_sax_parser_base.erlsrc b/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
index 67fdec560e..9ca44f259d 100644
--- a/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
+++ b/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
@@ -2121,10 +2121,11 @@ parse_external_entity(State, _PubId, SysId, Acc) ->
SaveState = event_callback({startEntity, SysId}, State),
- State1 = State#xmerl_sax_parser_state{line_no=1,
- end_tags = []},
+ EntityState =
+ SaveState#xmerl_sax_parser_state{line_no=1,
+ end_tags = []},
- {Acc1, EventState, EventRefTab, AttVals} = handle_external_entity(ExtRef, State1, Acc),
+ {Acc1, EventState, EventRefTab, AttVals} = handle_external_entity(ExtRef, EntityState, Acc),
NewState = event_callback({endEntity, SysId},
SaveState#xmerl_sax_parser_state{event_state=EventState}),
@@ -2137,7 +2138,6 @@ parse_external_entity(State, _PubId, SysId, Acc) ->
end.
-
%%----------------------------------------------------------------------
%% Function : handle_external_entity(ExtRef, State, Acc) -> Result
%% Parameters: ExtRef = {file, string()} | {http, string()}
--
2.35.3