File: igbinary_085.phpt

package info (click to toggle)
php-igbinary 3.2.16-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,024 kB
  • sloc: ansic: 3,373; xml: 1,106; pascal: 10; makefile: 2; php: 2; sh: 1
file content (29 lines) | stat: -rw-r--r-- 818 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--TEST--
Properly free unexpected duplicate fields when unserializing arrays
--FILE--
<?php
// Duplicate fields wouldn't be created by calls to igbinary_serialize,
// but make sure to handle them when unserializing corrupt data.
$s = new stdClass();
$ser = igbinary_serialize(['xx' => $s, 'yy' => $s]);
echo urlencode($ser), "\n";
$result = igbinary_unserialize(str_replace('xx', 'yy', $ser));
var_dump($result);
$ser = igbinary_serialize([0x66 => $s, 0x77 => $s]);
echo urlencode($ser), "\n";
$result2 = igbinary_unserialize(str_replace("\x66", "\x77", $ser));
var_dump($result2);
?>
--EXPECT--
%00%00%00%02%14%02%11%02xx%17%08stdClass%14%00%11%02yy%22%01
array(1) {
  ["yy"]=>
  object(stdClass)#2 (0) {
  }
}
%00%00%00%02%14%02%06f%17%08stdClass%14%00%06w%22%01
array(1) {
  [119]=>
  object(stdClass)#3 (0) {
  }
}