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