summaryrefslogtreecommitdiff
path: root/ext/standard/pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/pack.c')
-rw-r--r--ext/standard/pack.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index 8f47aac258..c3bcf8d2e6 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -345,10 +345,13 @@ PHP_FUNCTION(pack)
if (arg < 0) {
arg = num_args - currentarg;
}
-
+ if (currentarg > INT_MAX - arg) {
+ goto too_few_args;
+ }
currentarg += arg;
if (currentarg > num_args) {
+too_few_args:
efree(formatcodes);
efree(formatargs);
php_error_docref(NULL, E_WARNING, "Type %c: too few arguments", code);