diff --git a/ext/standard/string.c b/ext/standard/string.c index 8b97d0797dfd4..157bc02a1c808 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -5697,11 +5697,6 @@ PHP_FUNCTION(str_pad) } num_pad_chars = pad_length - ZSTR_LEN(input); - if (num_pad_chars >= INT_MAX) { - php_error_docref(NULL, E_WARNING, "Padding length is too long"); - return; - } - result = zend_string_safe_alloc(1, ZSTR_LEN(input), num_pad_chars, 0); ZSTR_LEN(result) = 0; diff --git a/ext/standard/tests/strings/str_pad_variation1.phpt b/ext/standard/tests/strings/str_pad_variation1.phpt new file mode 100644 index 0000000000000..29630513cb0d4 --- /dev/null +++ b/ext/standard/tests/strings/str_pad_variation1.phpt @@ -0,0 +1,36 @@ +--TEST-- +Test str_pad() function : usage variations - large values for '$pad_length' argument +--FILE-- +getMessage() . "\n"; +} + +$php_int_max_pad_length = PHP_INT_MAX; +var_dump( str_pad($input, $php_int_max_pad_length) ); + + +?> +--EXPECTF-- +*** Testing str_pad() function: with large value for for 'pad_length' argument *** +str_pad() expects parameter 2 to be int, float given + +Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d + diff --git a/ext/standard/tests/strings/str_pad_variation5.phpt b/ext/standard/tests/strings/str_pad_variation5.phpt index 8eade37df3df8..41a70e675a059 100644 --- a/ext/standard/tests/strings/str_pad_variation5.phpt +++ b/ext/standard/tests/strings/str_pad_variation5.phpt @@ -31,4 +31,4 @@ var_dump( str_pad($input, $pad_length) ); --EXPECTF-- *** Testing str_pad() function: with large value for for 'pad_length' argument *** -Fatal error: Allowed memory size of 134217728 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d +Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d