cvs: php-src(PHP_5_2) /ext/standard array.c /ext/standard/tests/array array_pad.phpt

From: Date: Wed, 15 Nov 2006 22:10:20 +0000
Subject: cvs: php-src(PHP_5_2) /ext/standard array.c /ext/standard/tests/array array_pad.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41597@lists.php.net to get a copy of this message
tony2001 Wed Nov 15 22:10:20 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/standard/tests/array array_pad.phpt Modified files: /php-src/ext/standard array.c Log: fix leak, add test http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.308.2.21.2.17&r2=1.308.2.21.2.18&diff_format=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.308.2.21.2.17 php-src/ext/standard/array.c:1.308.2.21.2.18 --- php-src/ext/standard/array.c:1.308.2.21.2.17 Sun Nov 12 17:23:01 2006 +++ php-src/ext/standard/array.c Wed Nov 15 22:10:19 2006 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.308.2.21.2.17 2006/11/12 17:23:01 iliaa Exp $ */ +/* $Id: array.c,v 1.308.2.21.2.18 2006/11/15 22:10:19 tony2001 Exp $ */ #include "php.h" #include "php_ini.h" @@ -2656,6 +2656,7 @@ num_pads = pad_size_abs - input_size; if(num_pads > 1048576) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "You may only pad up to 1048576 elements at a time"); + zval_dtor(return_value); RETURN_FALSE; } pads = (zval ***)safe_emalloc(num_pads, sizeof(zval **), 0); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_pad.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_pad.phpt +++ php-src/ext/standard/tests/array/array_pad.phpt --TEST-- array_pad() tests --FILE-- <?php var_dump(array_pad()); var_dump(array_pad(array())); var_dump(array_pad(array(), 1)); var_dump(array_pad(array(), 1, 0)); var_dump(array_pad(array(), 0, 0)); var_dump(array_pad(array(), -1, 0)); var_dump(array_pad(array("", -1, 2.0), 5, 0)); var_dump(array_pad(array("", -1, 2.0), 5, array())); var_dump(array_pad(array("", -1, 2.0), 2, array())); var_dump(array_pad(array("", -1, 2.0), -3, array())); var_dump(array_pad(array("", -1, 2.0), -4, array())); var_dump(array_pad(array("", -1, 2.0), 2000000, 0)); echo "Done\n"; ?> --EXPECTF-- Warning: array_pad() expects exactly 3 parameters, 0 given in %s on line %d NULL Warning: array_pad() expects exactly 3 parameters, 1 given in %s on line %d NULL Warning: array_pad() expects exactly 3 parameters, 2 given in %s on line %d NULL array(1) { [0]=> int(0) } array(0) { } array(1) { [0]=> int(0) } array(5) { [0]=> string(0) "" [1]=> int(-1) [2]=> float(2) [3]=> int(0) [4]=> int(0) } array(5) { [0]=> string(0) "" [1]=> int(-1) [2]=> float(2) [3]=> array(0) { } [4]=> array(0) { } } array(3) { [0]=> string(0) "" [1]=> int(-1) [2]=> float(2) } array(3) { [0]=> string(0) "" [1]=> int(-1) [2]=> float(2) } array(4) { [0]=> array(0) { } [1]=> string(0) "" [2]=> int(-1) [3]=> float(2) } Warning: array_pad(): You may only pad up to 1048576 elements at a time in %s on line %d bool(false) Done --UEXPECTF-- Warning: array_pad() expects exactly 3 parameters, 0 given in %s on line %d NULL Warning: array_pad() expects exactly 3 parameters, 1 given in %s on line %d NULL Warning: array_pad() expects exactly 3 parameters, 2 given in %s on line %d NULL array(1) { [0]=> int(0) } array(0) { } array(1) { [0]=> int(0) } array(5) { [0]=> unicode(0) "" [1]=> int(-1) [2]=> float(2) [3]=> int(0) [4]=> int(0) } array(5) { [0]=> unicode(0) "" [1]=> int(-1) [2]=> float(2) [3]=> array(0) { } [4]=> array(0) { } } array(3) { [0]=> unicode(0) "" [1]=> int(-1) [2]=> float(2) } array(3) { [0]=> unicode(0) "" [1]=> int(-1) [2]=> float(2) } array(4) { [0]=> array(0) { } [1]=> unicode(0) "" [2]=> int(-1) [3]=> float(2) } Warning: array_pad(): You may only pad up to 1048576 elements at a time in %s on line %d bool(false) Done

« previous php.cvs (#41597) next »