File: 48_removeChild_crashes_rt_80395.t

package info (click to toggle)
libxml-libxml-perl 2.0134%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,556 kB
  • sloc: perl: 6,310; ansic: 3,851; xml: 182; sh: 21; makefile: 15
file content (36 lines) | stat: -rw-r--r-- 614 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl

# See:
#
# https://rt.cpan.org/Public/Bug/Display.html?id=80395

use strict;
use warnings;

use Test::More tests => 1;

use XML::LibXML;

my $xml = <<EOF;
<!DOCTYPE bug [
<!ENTITY myent "xyz">
]>
<bug>
  <elem>&myent;</elem>
</bug>
EOF

my $dom = XML::LibXML->load_xml (string => $xml,
                                 expand_entities => 0);
my $root = $dom->documentElement;

my @nodes = $root->childNodes;
foreach my $node (@nodes) {
    next if $node->nodeType != XML_ELEMENT_NODE;
    next if $node->nodeName ne 'elem';

    $root->removeChild ($node);
}

# TEST
ok(1, "Code did not crash.");