View | Details | Raw Unified | Return to bug 23290
Collapse All | Expand All

(-)a/Koha/XSLT_Handler.pm (-1 / +33 lines)
Lines 318-325 sub _load { Link Here
318
        return;
318
        return;
319
    }
319
    }
320
320
321
    my $security = XML::LibXSLT::Security->new();
322
    $security->register_callback( read_file  => sub {
323
        warn "read_file called in XML::LibXSLT";
324
        #i.e. when using the exsl:document() element or document() function (to read a XML file)
325
        my ($tctxt,$value) = @_;
326
        return 0;
327
    });
328
    $security->register_callback( write_file => sub {
329
        warn "write_file called in XML::LibXSLT";
330
        #i.e. when using the exsl:document element (or document() function?) (to write an output file of many possible types)
331
        #e.g.
332
        #<exsl:document href="file:///tmp/breached.txt">
333
        #   <xsl:text>breached!</xsl:text>
334
        #</exsl:document>
335
        my ($tctxt,$value) = @_;
336
        return 0;
337
    });
338
    $security->register_callback( read_net   => sub {
339
        warn "read_net called in XML::LibXSLT";
340
        #i.e. when using the document() function (to read XML from the network)
341
        #e.g. <xsl:copy-of select="document('http://localhost')" />
342
        my ($tctxt,$value) = @_;
343
        return 0;
344
    });
345
    $security->register_callback( write_net  => sub {
346
        warn "write_net called in XML::LibXSLT";
347
        #NOTE: it's unknown how one would invoke this, but covering our bases anyway
348
        my ($tctxt,$value) = @_;
349
        return 0;
350
    });
351
321
    #parse sheet
352
    #parse sheet
322
    my $xslt = XML::LibXSLT->new;
353
    my $xslt = XML::LibXSLT->new;
354
    $xslt->security_callbacks( $security );
355
323
    $rv = $code? $digest.$codelen: $filename;
356
    $rv = $code? $digest.$codelen: $filename;
324
    $self->{xslt_hash}->{$rv} = eval { $xslt->parse_stylesheet($style_doc) };
357
    $self->{xslt_hash}->{$rv} = eval { $xslt->parse_stylesheet($style_doc) };
325
    if ($@) {
358
    if ($@) {
326
- 

Return to bug 23290