File tree 5 files changed +251
-0
lines changed
5 files changed +251
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #53437 (Crash when using unserialized DatePeriod instance), variation 2
3
+ --FILE--
4
+ <?php
5
+ $ s = 'O:10:"DatePeriod":0:{} ' ;
6
+
7
+ $ dp = unserialize ($ s );
8
+
9
+ var_dump ($ dp );
10
+ ?>
11
+ ==DONE==
12
+ --EXPECTF--
13
+ Fatal error: Invalid serialization data for DatePeriod object in %sbug53437_var1.php on line %d
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #53437 DateInterval basic serialization
3
+ --FILE--
4
+ <?php
5
+ $ di0 = new DateInterval ('P2Y4DT6H8M ' );
6
+
7
+ $ s = serialize ($ di0 );
8
+
9
+ $ di1 = unserialize ($ s );
10
+
11
+ var_dump ($ di0 , $ di1 );
12
+
13
+ ?>
14
+ ==DONE==
15
+ --EXPECT--
16
+ object(DateInterval)#1 (15) {
17
+ ["y"]=>
18
+ int(2)
19
+ ["m"]=>
20
+ int(0)
21
+ ["d"]=>
22
+ int(4)
23
+ ["h"]=>
24
+ int(6)
25
+ ["i"]=>
26
+ int(8)
27
+ ["s"]=>
28
+ int(0)
29
+ ["weekday"]=>
30
+ int(0)
31
+ ["weekday_behavior"]=>
32
+ int(0)
33
+ ["first_last_day_of"]=>
34
+ int(0)
35
+ ["invert"]=>
36
+ int(0)
37
+ ["days"]=>
38
+ bool(false)
39
+ ["special_type"]=>
40
+ int(0)
41
+ ["special_amount"]=>
42
+ int(0)
43
+ ["have_weekday_relative"]=>
44
+ int(0)
45
+ ["have_special_relative"]=>
46
+ int(0)
47
+ }
48
+ object(DateInterval)#2 (15) {
49
+ ["y"]=>
50
+ int(2)
51
+ ["m"]=>
52
+ int(0)
53
+ ["d"]=>
54
+ int(4)
55
+ ["h"]=>
56
+ int(6)
57
+ ["i"]=>
58
+ int(8)
59
+ ["s"]=>
60
+ int(0)
61
+ ["weekday"]=>
62
+ int(0)
63
+ ["weekday_behavior"]=>
64
+ int(0)
65
+ ["first_last_day_of"]=>
66
+ int(0)
67
+ ["invert"]=>
68
+ int(0)
69
+ ["days"]=>
70
+ int(0)
71
+ ["special_type"]=>
72
+ int(0)
73
+ ["special_amount"]=>
74
+ int(0)
75
+ ["have_weekday_relative"]=>
76
+ int(0)
77
+ ["have_special_relative"]=>
78
+ int(0)
79
+ }
80
+ ==DONE==
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #53437 DateInterval unserialize bad data, 32 bit
3
+ --SKIPIF--
4
+ <?php if (PHP_INT_SIZE != 4 ) { die ('skip 32 bit only ' ); } ?>
5
+ --FILE--
6
+ <?php
7
+ $ s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";} ' ;
8
+
9
+ $ di = unserialize ($ s );
10
+ var_dump ($ di );
11
+
12
+ ?>
13
+ ==DONE==
14
+ --EXPECT--
15
+ object(DateInterval)#1 (15) {
16
+ ["y"]=>
17
+ int(2)
18
+ ["m"]=>
19
+ int(0)
20
+ ["d"]=>
21
+ int(0)
22
+ ["h"]=>
23
+ int(6)
24
+ ["i"]=>
25
+ int(8)
26
+ ["s"]=>
27
+ int(0)
28
+ ["weekday"]=>
29
+ int(10)
30
+ ["weekday_behavior"]=>
31
+ int(10)
32
+ ["first_last_day_of"]=>
33
+ int(0)
34
+ ["invert"]=>
35
+ int(0)
36
+ ["days"]=>
37
+ int(0)
38
+ ["special_type"]=>
39
+ int(0)
40
+ ["special_amount"]=>
41
+ int(-1)
42
+ ["have_weekday_relative"]=>
43
+ int(9)
44
+ ["have_special_relative"]=>
45
+ int(0)
46
+ }
47
+ ==DONE==
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #53437 (Check that var_dump out is the same using the whole object or it's single properties), variation 4
3
+ --INI--
4
+ date.timezone = Europe/Berlin
5
+ --FILE--
6
+ <?php
7
+ $ dt = new DateTime ('2009-10-11 ' );
8
+
9
+ $ df = $ dt ->diff (new DateTime ('2009-10-13 ' ));
10
+
11
+ var_dump ($ df ,
12
+ $ df ->y ,
13
+ $ df ->m ,
14
+ $ df ->d ,
15
+ $ df ->h ,
16
+ $ df ->i ,
17
+ $ df ->s ,
18
+ $ df ->invert ,
19
+ $ df ->days );
20
+
21
+ ?>
22
+ ==DONE==
23
+ --EXPECTF--
24
+ object(DateInterval)#%d (15) {
25
+ ["y"]=>
26
+ int(0)
27
+ ["m"]=>
28
+ int(0)
29
+ ["d"]=>
30
+ int(2)
31
+ ["h"]=>
32
+ int(0)
33
+ ["i"]=>
34
+ int(0)
35
+ ["s"]=>
36
+ int(0)
37
+ ["weekday"]=>
38
+ int(0)
39
+ ["weekday_behavior"]=>
40
+ int(0)
41
+ ["first_last_day_of"]=>
42
+ int(0)
43
+ ["invert"]=>
44
+ int(0)
45
+ ["days"]=>
46
+ int(2)
47
+ ["special_type"]=>
48
+ int(0)
49
+ ["special_amount"]=>
50
+ int(0)
51
+ ["have_weekday_relative"]=>
52
+ int(0)
53
+ ["have_special_relative"]=>
54
+ int(0)
55
+ }
56
+ int(0)
57
+ int(0)
58
+ int(2)
59
+ int(0)
60
+ int(0)
61
+ int(0)
62
+ int(0)
63
+ int(2)
64
+ ==DONE==
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #53437 DateInterval unserialize bad data, 64 bit
3
+ --SKIPIF--
4
+ <?php if (PHP_INT_SIZE != 8 ) { die ('skip true 64 bit only ' ); } ?>
5
+ --FILE--
6
+ <?php
7
+ $ s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";} ' ;
8
+
9
+ $ di = unserialize ($ s );
10
+ var_dump ($ di );
11
+
12
+ ?>
13
+ ==DONE==
14
+ --EXPECT--
15
+ object(DateInterval)#1 (15) {
16
+ ["y"]=>
17
+ int(2)
18
+ ["m"]=>
19
+ int(0)
20
+ ["d"]=>
21
+ int(0)
22
+ ["h"]=>
23
+ int(6)
24
+ ["i"]=>
25
+ int(8)
26
+ ["s"]=>
27
+ int(0)
28
+ ["weekday"]=>
29
+ int(10)
30
+ ["weekday_behavior"]=>
31
+ int(10)
32
+ ["first_last_day_of"]=>
33
+ int(0)
34
+ ["invert"]=>
35
+ int(0)
36
+ ["days"]=>
37
+ int(0)
38
+ ["special_type"]=>
39
+ int(0)
40
+ ["special_amount"]=>
41
+ int(9223372036854775807)
42
+ ["have_weekday_relative"]=>
43
+ int(9)
44
+ ["have_special_relative"]=>
45
+ int(0)
46
+ }
47
+ ==DONE==
You can’t perform that action at this time.
0 commit comments