File tree Expand file tree Collapse file tree 2 files changed +21
-4
lines changed
lib/internal/Magento/Framework/Unserialize Expand file tree Collapse file tree 2 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -25,12 +25,29 @@ public function testUnserializeArray()
25
25
}
26
26
27
27
/**
28
- * @expectedException Exception
28
+ * @param string $serialized The string containing serialized object
29
+ *
30
+ * @expectedException \Exception
29
31
* @expectedExceptionMessage String contains serialized object
32
+ * @dataProvider serializedObjectDataProvider
30
33
*/
31
- public function testUnserializeObject ()
34
+ public function testUnserializeObject ($ serialized )
32
35
{
33
- $ serialized = 'a:2:{i:0;s:3:"foo";i:1;O:6:"Object":1:{s:11:"Objectvar";i:123;}} ' ;
34
36
$ this ->assertFalse ($ this ->unserialize ->unserialize ($ serialized ));
35
37
}
38
+
39
+ public function serializedObjectDataProvider ()
40
+ {
41
+ return [
42
+ // Upper and lower case serialized object indicators, nested in array
43
+ ['a:2:{i:0;s:3:"foo";i:1;O:6:"Object":1:{s:11:"Objectvar";i:123;}} ' ],
44
+ ['a:2:{i:0;s:3:"foo";i:1;o:6:"Object":1:{s:11:"Objectvar";i:123;}} ' ],
45
+ ['a:2:{i:0;s:3:"foo";i:1;c:6:"Object":1:{s:11:"Objectvar";i:123;}} ' ],
46
+ ['a:2:{i:0;s:3:"foo";i:1;C:6:"Object":1:{s:11:"Objectvar";i:123;}} ' ],
47
+
48
+ // Positive, negative signs on object length, non-nested
49
+ ['o:+6:"Object":1:{s:11:"Objectvar";i:123;} ' ],
50
+ ['o:-6:"Object":1:{s:11:"Objectvar";i:123;} ' ]
51
+ ];
52
+ }
36
53
}
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ class Unserialize
14
14
*/
15
15
public function unserialize ($ string )
16
16
{
17
- if (preg_match ('/o:\d+:"[a-z0-9_]+": \d+:{.*?} /i ' , $ string )) {
17
+ if (preg_match ('/[oc]:[+\-]? \d+:" /i ' , $ string )) {
18
18
trigger_error ('String contains serialized object ' );
19
19
return false ;
20
20
}
You can’t perform that action at this time.
0 commit comments