diff options
author | foobar <sniper@php.net> | 2005-05-31 09:41:36 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2005-05-31 09:41:36 +0000 |
commit | b185ee031511552cda5936cb5e9db4531bd2d133 (patch) | |
tree | 3eaa88fc102b7da27b51446aee606d05a250ecc1 | |
parent | 4f9a2bed42db5408e78972f6ffd5f5890cfa5343 (diff) | |
download | php-git-b185ee031511552cda5936cb5e9db4531bd2d133.tar.gz |
- Fixed bug with unserialize() with "exotic" letters in class names
# Patch by: Christian Schneider <cschneid@cschneid.com>
-rw-r--r-- | ext/standard/tests/serialize/006.phpt | 29 | ||||
-rw-r--r-- | ext/standard/var_unserializer.re | 2 |
2 files changed, 30 insertions, 1 deletions
diff --git a/ext/standard/tests/serialize/006.phpt b/ext/standard/tests/serialize/006.phpt new file mode 100644 index 0000000000..fb813bc0d9 --- /dev/null +++ b/ext/standard/tests/serialize/006.phpt @@ -0,0 +1,29 @@ +--TEST-- +serialize()/unserialize() with exotic letters +--FILE-- +<?php + $åäöÅÄÖ = array('åäöÅÄÖ' => 'åäöÅÄÖ'); + + class ÜberKööliäå + { + public $åäöÅÄÖüÜber = 'åäöÅÄÖ'; + } + + $foo = new Überkööliäå(); + + var_dump(serialize($foo)); + var_dump(unserialize(serialize($foo))); + var_dump(serialize($åäöÅÄÖ)); + var_dump(unserialize(serialize($åäöÅÄÖ))); +?> +--EXPECT-- +string(55) "O:11:"ÜberKööliäå":1:{s:11:"åäöÅÄÖüÜber";s:6:"åäöÅÄÖ";}" +object(ÜberKööliäå)#2 (1) { + ["åäöÅÄÖüÜber"]=> + string(6) "åäöÅÄÖ" +} +string(32) "a:1:{s:6:"åäöÅÄÖ";s:6:"åäöÅÄÖ";}" +array(1) { + ["åäöÅÄÖ"]=> + string(6) "åäöÅÄÖ" +} diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index 23cb4317db..69b7307013 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -544,7 +544,7 @@ object ":" uiv ":" ["] { return 0; } - len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); + len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"); if (len3 != len) { *p = YYCURSOR + len3 - len; |