summaryrefslogtreecommitdiff
path: root/ext/standard/pack.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2015-05-11 01:10:35 -0700
committerStanislav Malyshev <stas@php.net>2015-05-11 01:10:35 -0700
commit9c0813fd48023634f6ce97e66de0fb9b7c196cda (patch)
tree65c81182fa9a07fe0bf5f42a59c35848a9c98ebe /ext/standard/pack.c
parent634aa0a2dbf8ec5e6fabb4ee01c6d1355ba7ee67 (diff)
downloadphp-git-9c0813fd48023634f6ce97e66de0fb9b7c196cda.tar.gz
Add test for bug #69522
Diffstat (limited to 'ext/standard/pack.c')
-rw-r--r--ext/standard/pack.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index c1c2c7a02c..20c7bf0462 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -642,6 +642,12 @@ PHP_FUNCTION(unpack)
break;
}
+ if (size != 0 && size != -1 && size < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Type %c: integer overflow", type);
+ zval_dtor(return_value);
+ RETURN_FALSE;
+ }
+
/* Do actual unpacking */
for (i = 0; i != arg; i++ ) {
/* Space for name + number, safe as namelen is ensured <= 200 */