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

Reply via email to