From ccfaf3e4713b1878241f1235a6fcb66ad0582d47 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 7 Dec 2022 21:02:22 +0100 Subject: Add unserialize_noclass --- .../config/config_serialize_noclass.ini | 1 + .../config/config_serialize_noclass_disabled.ini | 1 + .../unserialize_noclass_forced.phpt | 38 ++++++++++++++++++++++ .../unserialize_noclass_forced_disabled.phpt | 35 ++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 src/tests/unserialize_php8/config/config_serialize_noclass.ini create mode 100644 src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini create mode 100644 src/tests/unserialize_php8/unserialize_noclass_forced.phpt create mode 100644 src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt (limited to 'src/tests/unserialize_php8') 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 @@ +--TEST-- +Unserialize with noclass forced +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_serialize_noclass.ini +--FILE-- +name = "test"; + +$a = serialize($c); +var_dump(unserialize($a, ['allowed_classes' => false])); +var_dump(unserialize($a, ['allowed_classes' => true ])); +var_dump(unserialize($a)); +?> +--EXPECT-- +object(__PHP_Incomplete_Class)#2 (2) { + ["__PHP_Incomplete_Class_Name"]=> + string(1) "C" + ["name"]=> + string(4) "test" +} +object(__PHP_Incomplete_Class)#2 (2) { + ["__PHP_Incomplete_Class_Name"]=> + string(1) "C" + ["name"]=> + string(4) "test" +} +object(__PHP_Incomplete_Class)#2 (2) { + ["__PHP_Incomplete_Class_Name"]=> + string(1) "C" + ["name"]=> + string(4) "test" +} 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 @@ +--TEST-- +Unserialize with noclass forced disabled +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_serialize_noclass_disabled.ini +--FILE-- +name = "test"; + +$a = serialize($c); +var_dump(unserialize($a, ['allowed_classes' => false])); +var_dump(unserialize($a, ['allowed_classes' => true ])); +var_dump(unserialize($a)); +?> +--EXPECT-- +object(__PHP_Incomplete_Class)#2 (2) { + ["__PHP_Incomplete_Class_Name"]=> + string(1) "C" + ["name"]=> + string(4) "test" +} +object(C)#2 (1) { + ["name"]=> + string(4) "test" +} +object(C)#2 (1) { + ["name"]=> + string(4) "test" +} + -- cgit v1.3