php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #66292 Serializable interface implementation returns recursive when object serialized
Submitted: 2013-12-13 21:39 UTC Modified: 2013-12-15 09:50 UTC
From: will at johnstonclan dot net Assigned:
Status: Duplicate Package: Scripting Engine problem
PHP Version: 5.5.7 OS: Mac OS X 10.9
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: will at johnstonclan dot net
New email:
PHP Version: OS:

 

 [2013-12-13 21:39 UTC] will at johnstonclan dot net
Description:
------------
When a class is created which implements Serializable, and the serialize method instantiates another class which is then serialized and returned, and several instances of the first class are created in an array, and then entire array is serialized, instances after the first one are considered recursive. If this is unserialized, PHP segfaults.

Test script:
---------------
https://gist.github.com/will-in-wi/7951652

If you uncomment the last line, the entire script segfaults.

Expected result:
----------------
a:9:{i:0;C:10:"HelloWorld":39:{O:6:"Simple":1:{s:4:"test";s:4:"str1";}}i:1;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str2";}}i:2;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str3";}}i:3;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str4";}}i:4;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str5";}}i:5;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str6";}}i:6;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str7";}}i:7;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str8";}}i:8;C:10:"HelloWorld":4:{O:6:"Simple":1:{s:4:"test";s:4:"str9";}}}

Actual result:
--------------
a:9:{i:0;C:10:"HelloWorld":39:{O:6:"Simple":1:{s:4:"test";s:4:"str1";}}i:1;C:10:"HelloWorld":4:{r:3;}i:2;C:10:"HelloWorld":4:{r:3;}i:3;C:10:"HelloWorld":4:{r:3;}i:4;C:10:"HelloWorld":4:{r:3;}i:5;C:10:"HelloWorld":4:{r:3;}i:6;C:10:"HelloWorld":4:{r:3;}i:7;C:10:"HelloWorld":4:{r:3;}i:8;C:10:"HelloWorld":4:{r:3;}}

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-12-13 21:40 UTC] will at johnstonclan dot net
This might be related to #36424. Since that bug has been fixed for a while, I opted to open a new one.
 [2013-12-15 09:50 UTC] bwoebi@php.net
-Status: Open +Status: Duplicate
 [2013-12-15 09:50 UTC] bwoebi@php.net
Duplicate of #66085
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 18:01:28 2024 UTC