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;