diff options
Diffstat (limited to 'ext/standard/pack.c')
-rw-r--r-- | ext/standard/pack.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 7d154841ab..b21edc4a84 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -343,10 +343,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); |