shell bypass 403
package XML::Stream::Tools;
use strict;
use warnings;
use FileHandle;
# helper function (not a method!)
sub setup_debug {
my ($self, %args) = @_;
$self->{DEBUGTIME} = 0;
$self->{DEBUGTIME} = $args{debugtime} if exists($args{debugtime});
$self->{DEBUGLEVEL} = 0;
$self->{DEBUGLEVEL} = $args{debuglevel} if exists($args{debuglevel});
$self->{DEBUGFILE} = "";
$args{debugfh} ||= '';
$args{debug} ||= '';
if ($args{debugfh} ne "")
{
$self->{DEBUGFILE} = $args{debugfh};
$self->{DEBUG} = 1;
}
elsif ($args{debug} ne "")
{
$self->{DEBUG} = 1;
if (lc($args{debug}) eq "stdout")
{
$self->{DEBUGFILE} = FileHandle->new(">&STDERR");
$self->{DEBUGFILE}->autoflush(1);
}
else
{
if (-e $args{debug})
{
if (-w $args{debug})
{
$self->{DEBUGFILE} = FileHandle->new(">$args{debug}");
$self->{DEBUGFILE}->autoflush(1);
}
else
{
print "WARNING: debug file ($args{debug}) is not writable by you\n";
print " No debug information being saved.\n";
$self->{DEBUG} = 0;
}
}
else
{
$self->{DEBUGFILE} = FileHandle->new(">$args{debug}");
if (defined($self->{DEBUGFILE}))
{
$self->{DEBUGFILE}->autoflush(1);
}
else
{
print "WARNING: debug file ($args{debug}) does not exist \n";
print " and is not writable by you.\n";
print " No debug information being saved.\n";
$self->{DEBUG} = 0;
}
}
}
}
}
1;