moriyoshi Tue Jul 20 14:16:36 2004 EDT Modified files: /php-src/ext/standard filters.c Log: - Add more null checks. http://cvs.php.net/diff.php/php-src/ext/standard/filters.c?r1=1.40&r2=1.41&ty=u Index: php-src/ext/standard/filters.c diff -u php-src/ext/standard/filters.c:1.40 php-src/ext/standard/filters.c:1.41 --- php-src/ext/standard/filters.c:1.40 Tue Jul 20 14:03:19 2004 +++ php-src/ext/standard/filters.c Tue Jul 20 14:16:36 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: filters.c,v 1.40 2004/07/20 18:03:19 moriyoshi Exp $ */ +/* $Id: filters.c,v 1.41 2004/07/20 18:16:36 moriyoshi Exp $ */ #include "php.h" #include "php_globals.h" @@ -307,6 +307,7 @@ PHP_CONV_ERR_INVALID_SEQ, PHP_CONV_ERR_UNEXPECTED_EOS, PHP_CONV_ERR_EXISTS, + PHP_CONV_ERR_ALLOC, PHP_CONV_ERR_NOT_FOUND } php_conv_err_t; @@ -1167,13 +1168,20 @@ if (zend_hash_find((HashTable *)ht, field_name, field_name_len, (void **)&tmpval) == SUCCESS) { if (Z_TYPE_PP(tmpval) != IS_STRING) { zval zt = **tmpval; + convert_to_string(&zt); - *pretval = pemalloc(Z_STRLEN(zt) + 1, persistent); + + if (NULL == (*pretval = pemalloc(Z_STRLEN(zt) + 1, persistent))) { + return PHP_CONV_ERR_ALLOC; + } + *pretval_len = Z_STRLEN(zt); memcpy(*pretval, Z_STRVAL(zt), Z_STRLEN(zt) + 1); zval_dtor(&zt); } else { - *pretval = pemalloc(Z_STRLEN_PP(tmpval) + 1, persistent); + if (NULL == (*pretval = pemalloc(Z_STRLEN_PP(tmpval) + 1, persistent))) { + return PHP_CONV_ERR_ALLOC; + } *pretval_len = Z_STRLEN_PP(tmpval); memcpy(*pretval, Z_STRVAL_PP(tmpval), Z_STRLEN_PP(tmpval) + 1); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php