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