PHP  
 PHP_5_3
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

Expected Test Failure Report for ext/date/tests/bug53437.phpt ('Bug #53437 (Crash when using unserialized DatePeriod instance)')

Script

1: <?php
2: $dp 
= new DatePeriod(new DateTime('2010-01-01 UTC'), new DateInterval('P1D'), 2);
3:
4: echo 
"Original:\r\n";
5: foreach(
$dp as $dt) {
6:         echo 
$dt->format('Y-m-d H:i:s')."\r\n";
7: }
8: echo 
"\r\n";
9:
var_dump($dp);
10:
11:
$ser serialize($dp); // $ser is: O:10:"DatePeriod":0:{}
12:
13: // Create dangerous instance
14:
$dpu unserialize($ser); // $dpu has invalid values???
15:
var_dump($dpu);
16:
17: echo 
"Unserialized:\r\n";
18:
// ???which leads to CRASH:
19:
foreach($dpu as $dt) {
20:         echo 
$dt->format('Y-m-d H:i:s')."\r\n";
21: }
22:
?>
23:

Expected


Output

Original:
2010-01-01 00:00:00
2010-01-02 00:00:00
2010-01-03 00:00:00

object(DatePeriod)#1 (0) {
}
object(DatePeriod)#2 (0) {
}
Unserialized:

Diff

001+ Original:
002+ 2010-01-01 00:00:00
003+ 2010-01-02 00:00:00
004+ 2010-01-03 00:00:00
006+ object(DatePeriod)#1 (0) {
007+ }
008+ object(DatePeriod)#2 (0) {
009+ }
010+ Unserialized:

 

Generated at Sun, 19 May 2013 20:27:25 +0000 (2 days ago)

Copyright © 2005-2013 The PHP Group
All rights reserved.