ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     --TEST--
broken random data test : MessagePackUnpacker::execute
--SKIPIF--
<?php
if(!extension_loaded('msgpack')) {
    die("skip");
}
if (version_compare(PHP_VERSION, "7.1", ">=")) {
    die("skip PHP >= 7.1");
}
?>
--FILE--
<?php

error_reporting(E_ERROR | E_PARSE);

function test() {
    $serialized = msgpack_serialize(null);
    $serialized = substr($serialized, 0, -1);

    $length = mt_rand(1, 255);
    for ($i = 0; $i < $length; ++$i) {
        $serialized .= chr(mt_rand(0, 255));
    }

    // if returned null everything is OK
    $unpacker = new MessagePackUnpacker();
    if ($unpacker->execute($serialized, $offset))
    {
        if (($unserialized = $unpacker->data()) === null) {
            return true;
        }
        $unpacker->reset();
    }
    else
    {
        return true;
    }

    // whole data is read?
    if ($serialized !== msgpack_serialize($unserialized)) {
        return true;
    }

    echo bin2hex($serialized), "\n";
    var_dump($unserialized);

    return false;
}

mt_srand(0x4c05b583);
for ($i = 0; $i < 100; ++$i) {
    if (!test()) break;
}

?>
--EXPECT--
