diff options
author | Xinchen Hui <laruence@gmail.com> | 2017-08-15 12:35:10 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2017-08-15 12:35:10 +0800 |
commit | 05de40a651ece9d768cf557b255cb6b308ac3f0f (patch) | |
tree | 0a4d29b192cd3a11bc81deabc14ab5ea69ec68f8 | |
parent | 9ec0a2071c3cf615eba9818347d506b8d82b4b55 (diff) | |
parent | 6275825c68dcd68aedc59cab37cfde7a457256cf (diff) | |
download | php-git-05de40a651ece9d768cf557b255cb6b308ac3f0f.tar.gz |
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
Update NEWS
Fixed bug #75075 (unpack with X* causes infinity loop)
-rw-r--r-- | ext/standard/pack.c | 4 | ||||
-rw-r--r-- | ext/standard/tests/strings/bug75075.phpt | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 7b974cad16..c9c118751b 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -788,6 +788,10 @@ PHP_FUNCTION(unpack) /* Never use any input */ case 'X': size = -1; + if (arg < 0) { + php_error_docref(NULL, E_WARNING, "Type %c: '*' ignored", type); + arg = 1; + } break; case '@': diff --git a/ext/standard/tests/strings/bug75075.phpt b/ext/standard/tests/strings/bug75075.phpt new file mode 100644 index 0000000000..232de50622 --- /dev/null +++ b/ext/standard/tests/strings/bug75075.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #75075 (unpack with X* causes infinity loop) +--FILE-- +<?php +var_dump(unpack("X*", "")); +?> +--EXPECTF-- +Warning: unpack(): Type X: '*' ignored in %sbug75075.php on line %d +array(0) { +} |