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

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

Return to bug 23290