helly           Mon Apr 10 19:48:27 2006 UTC

  Modified files:              
    /php-src/ext/pgsql  pgsql.c 
  Log:
  - Fix possible SEGV
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/pgsql/pgsql.c?r1=1.348&r2=1.349&diff_format=u
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.348 php-src/ext/pgsql/pgsql.c:1.349
--- php-src/ext/pgsql/pgsql.c:1.348     Wed Mar 29 01:10:27 2006
+++ php-src/ext/pgsql/pgsql.c   Mon Apr 10 19:48:27 2006
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.348 2006/03/29 01:10:27 yohgaki Exp $ */
+/* $Id: pgsql.c,v 1.349 2006/04/10 19:48:27 helly Exp $ */
 
 #include <stdlib.h>
 
@@ -4586,7 +4586,7 @@
        char *field = NULL;
        uint field_len = -1;
        ulong num_idx = -1;
-       zval *meta, **def, **type, **not_null, **has_default, **val, *new_val;
+       zval *meta, **def, **type, **not_null, **has_default, **val, *new_val = 
NULL;
        int new_len, key_type, err = 0, skip_field;
        
        assert(pg_link != NULL);
@@ -4646,7 +4646,7 @@
                if (err) {
                        break; /* break out for() */
                }
-               MAKE_STD_ZVAL(new_val);
+               ALLOC_INIT_ZVAL(new_val);
                switch(php_pgsql_get_data_type(Z_STRVAL_PP(type), 
Z_STRLEN_PP(type)))
                {
                        case PG_BOOL:
@@ -5178,7 +5178,7 @@
                                break;
                } /* switch */
                
-               if (err) {
+               if (err && new_val) {
                        zval_dtor(new_val);
                        FREE_ZVAL(new_val);
                        break; /* break out for() */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to