File 3331-Allow-unresolved-references-when-option-skip_externa.patch of Package erlang

From 37d1119a127931aaed23d11412c13b90bf30e482 Mon Sep 17 00:00:00 2001
From: Lars Thorsen <lars@erlang.org>
Date: Mon, 7 Dec 2020 14:25:28 +0100
Subject: [PATCH] Allow unresolved references when option skip_external_dtd
 used

---
 lib/xmerl/src/xmerl_sax_parser_base.erlsrc | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/xmerl/src/xmerl_sax_parser_base.erlsrc b/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
index 297ef484fd..3dfdec440a 100644
--- a/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
+++ b/lib/xmerl/src/xmerl_sax_parser_base.erlsrc
@@ -1209,7 +1209,12 @@ parse_att_value(?STRING_REST("&", Rest), State, Stop, Acc)  ->
         {external_general, Name, _} ->
             ?fatal_error(State1, "External parsed entity reference in attribute value: " ++ Name);
         {not_found, Name} when State#xmerl_sax_parser_state.file_type =:= normal ->
-            ?fatal_error(State1, "Undeclared reference: " ++ Name);
+            case State1#xmerl_sax_parser_state.skip_external_dtd of
+                false ->
+                    ?fatal_error(State1, "Undeclared reference: " ++ Name);
+                true ->
+                    parse_att_value(Rest1, State1, Stop, ";" ++ lists:reverse(Name) ++ "&" ++ Acc)
+            end;
         {not_found, Name} ->
             parse_att_value(Rest1, State1, Stop, ";" ++ lists:reverse(Name) ++ "&" ++ Acc);
         {unparsed, Name, _}  ->
-- 
2.26.2

openSUSE Build Service is sponsored by