diff options
| author | jvoisin | 2022-12-07 21:02:22 +0100 |
|---|---|---|
| committer | jvoisin | 2022-12-08 20:55:46 +0100 |
| commit | ccfaf3e4713b1878241f1235a6fcb66ad0582d47 (patch) | |
| tree | 97dcd84aed33b1d98095d0cf3f467e9dfb975f0c /src/tests/unserialize_php8 | |
| parent | 5966fefb9a291bd0eecd0fff9396b2b6cea4a62e (diff) | |
Add unserialize_noclass
Diffstat (limited to 'src/tests/unserialize_php8')
4 files changed, 75 insertions, 0 deletions
diff --git a/src/tests/unserialize_php8/config/config_serialize_noclass.ini b/src/tests/unserialize_php8/config/config_serialize_noclass.ini new file mode 100644 index 0000000..b84de51 --- /dev/null +++ b/src/tests/unserialize_php8/config/config_serialize_noclass.ini | |||
| @@ -0,0 +1 @@ | |||
| sp.unserialize_noclass.enable(); | |||
diff --git a/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini b/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini new file mode 100644 index 0000000..0238772 --- /dev/null +++ b/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini | |||
| @@ -0,0 +1 @@ | |||
| sp.unserialize_noclass.disable(); | |||
diff --git a/src/tests/unserialize_php8/unserialize_noclass_forced.phpt b/src/tests/unserialize_php8/unserialize_noclass_forced.phpt new file mode 100644 index 0000000..9f276c5 --- /dev/null +++ b/src/tests/unserialize_php8/unserialize_noclass_forced.phpt | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | --TEST-- | ||
| 2 | Unserialize with noclass forced | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/config_serialize_noclass.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | class C { | ||
| 10 | public $name; | ||
| 11 | } | ||
| 12 | $c = new C; | ||
| 13 | $c->name = "test"; | ||
| 14 | |||
| 15 | $a = serialize($c); | ||
| 16 | var_dump(unserialize($a, ['allowed_classes' => false])); | ||
| 17 | var_dump(unserialize($a, ['allowed_classes' => true ])); | ||
| 18 | var_dump(unserialize($a)); | ||
| 19 | ?> | ||
| 20 | --EXPECT-- | ||
| 21 | object(__PHP_Incomplete_Class)#2 (2) { | ||
| 22 | ["__PHP_Incomplete_Class_Name"]=> | ||
| 23 | string(1) "C" | ||
| 24 | ["name"]=> | ||
| 25 | string(4) "test" | ||
| 26 | } | ||
| 27 | object(__PHP_Incomplete_Class)#2 (2) { | ||
| 28 | ["__PHP_Incomplete_Class_Name"]=> | ||
| 29 | string(1) "C" | ||
| 30 | ["name"]=> | ||
| 31 | string(4) "test" | ||
| 32 | } | ||
| 33 | object(__PHP_Incomplete_Class)#2 (2) { | ||
| 34 | ["__PHP_Incomplete_Class_Name"]=> | ||
| 35 | string(1) "C" | ||
| 36 | ["name"]=> | ||
| 37 | string(4) "test" | ||
| 38 | } | ||
diff --git a/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt b/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt new file mode 100644 index 0000000..2c4223a --- /dev/null +++ b/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | --TEST-- | ||
| 2 | Unserialize with noclass forced disabled | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/config_serialize_noclass_disabled.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | class C { | ||
| 10 | public $name; | ||
| 11 | } | ||
| 12 | $c = new C; | ||
| 13 | $c->name = "test"; | ||
| 14 | |||
| 15 | $a = serialize($c); | ||
| 16 | var_dump(unserialize($a, ['allowed_classes' => false])); | ||
| 17 | var_dump(unserialize($a, ['allowed_classes' => true ])); | ||
| 18 | var_dump(unserialize($a)); | ||
| 19 | ?> | ||
| 20 | --EXPECT-- | ||
| 21 | object(__PHP_Incomplete_Class)#2 (2) { | ||
| 22 | ["__PHP_Incomplete_Class_Name"]=> | ||
| 23 | string(1) "C" | ||
| 24 | ["name"]=> | ||
| 25 | string(4) "test" | ||
| 26 | } | ||
| 27 | object(C)#2 (1) { | ||
| 28 | ["name"]=> | ||
| 29 | string(4) "test" | ||
| 30 | } | ||
| 31 | object(C)#2 (1) { | ||
| 32 | ["name"]=> | ||
| 33 | string(4) "test" | ||
| 34 | } | ||
| 35 | |||
