rasmus Tue Apr 1 16:44:47 2003 EDT Modified files: (Branch: PHP_4_3) /php4 TODO_SEGFAULTS /php4/ext/standard array.c Log: Arbitrarily limit array_pad() to only do 1 million elements at a time. Probably still too high, but it solves the segfault for now. Index: php4/TODO_SEGFAULTS diff -u php4/TODO_SEGFAULTS:1.1.2.7 php4/TODO_SEGFAULTS:1.1.2.8 --- php4/TODO_SEGFAULTS:1.1.2.7 Tue Apr 1 14:10:35 2003 +++ php4/TODO_SEGFAULTS Tue Apr 1 16:44:47 2003 @@ -8,11 +8,10 @@ socket_iovec_alloc (Rasmus) exif_imagetype,exif_thumbnail (Rasmus) dbase_open (Rasmus) - + array_pad (Rasmus) Open: - array_pad bcsub (1) mb_ereg (2) mb_ereg_match (2) Index: php4/ext/standard/array.c diff -u php4/ext/standard/array.c:1.199.2.14 php4/ext/standard/array.c:1.199.2.15 --- php4/ext/standard/array.c:1.199.2.14 Thu Feb 6 10:28:28 2003 +++ php4/ext/standard/array.c Tue Apr 1 16:44:47 2003 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.199.2.14 2003/02/06 15:28:28 sniper Exp $ */ +/* $Id: array.c,v 1.199.2.15 2003/04/01 21:44:47 rasmus Exp $ */ #include "php.h" #include "php_ini.h" @@ -2339,6 +2339,10 @@ /* Populate the pads array */ 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"); + RETURN_FALSE; + } pads = (zval ***)emalloc(num_pads * sizeof(zval **)); for (i = 0; i < num_pads; i++) pads[i] = pad_value;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php