diff -Nurd XML-LibXML-2.0134.orig/Makefile.PL XML-LibXML-2.0134/Makefile.PL
--- XML-LibXML-2.0134.orig/Makefile.PL 2019-02-10 09:56:01.000000000 -0500
+++ XML-LibXML-2.0134/Makefile.PL 2021-05-31 06:28:54.000000000 -0400
@@ -104,7 +104,7 @@
# -------------------------------------------------------------------------- #
# read extra configurations from the commandline
my %params;
-@params{qw(FORCE DEBUG DEFINE EXTRALIBDIR GDOME INC LIBS SKIP_SAX_INSTALL XMLPREFIX NO_THREADS LDFLAGS)}=();
+@params{qw(FORCE DEBUG DEFINE EXTRALIBDIR GDOME INC LIBS SKIP_SAX_INSTALL XMLPREFIX NO_THREADS LDFLAGS PERL)}=();
@ARGV = grep {
my ($key, $val) = split(/=/, $_, 2);
diff -Nurd XML-LibXML-2.0134.orig/t/35huge_mode.t XML-LibXML-2.0134/t/35huge_mode.t
--- XML-LibXML-2.0134.orig/t/35huge_mode.t 2016-05-30 05:01:59.000000000 -0400
+++ XML-LibXML-2.0134/t/35huge_mode.t 2024-01-25 02:18:27.000000000 -0500
@@ -29,41 +29,49 @@
EOF
my $evil_xml = <<'EOF';
-
-
-
-
-
-
-
-
-
-
-
+
+
+EOF
+
+foreach my $i (2 .. 47)
+{
+ $evil_xml .= sprintf(qq# \n#, $i+1, $i, $i);
+}
+
+$evil_xml .= <<'EOF';
]>
-&lol9;
+&ha48;
EOF
-my($parser, $doc);
+my ($parser, $doc, $err);
$parser = XML::LibXML->new;
#$parser->set_option(huge => 0);
+# TEST
ok(!$parser->get_option('huge'), "huge mode disabled by default");
$doc = eval { $parser->parse_string($evil_xml); };
-isnt("$@", "", "exception thrown during parse");
-like($@, qr/entity.*loop/si, "exception refers to entity reference loop");
+$err = $@;
+
+# TEST
+isnt("$err", "", "exception thrown during parse");
+# TEST
+like($err, qr/entity/si, "exception refers to entity maximum loop (libxml2 <= 2.10) or depth (>= 2.11)");
$parser = XML::LibXML->new;
$doc = eval { $parser->parse_string($benign_xml); };
-is("$@", "", "no exception thrown during parse");
+$err = $@;
+
+# TEST
+is("$err", "", "no exception thrown during parse");
my $body = $doc->findvalue( '/lolz' );
+# TEST
is($body, 'haha', 'entity was parsed and expanded correctly');
exit;