helly           Fri May 30 15:12:26 2003 EDT

  Modified files:              
    /php4/ext/pgsql     pgsql.c 
  Log:
  Better fix for default connection handling.
  # Problems noticed by Jay with the help of Sascha's nice little script.
  
  
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.274 php4/ext/pgsql/pgsql.c:1.275
--- php4/ext/pgsql/pgsql.c:1.274        Fri May 30 12:51:00 2003
+++ php4/ext/pgsql/pgsql.c      Fri May 30 15:12:26 2003
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.274 2003/05/30 16:51:00 helly Exp $ */
+/* $Id: pgsql.c,v 1.275 2003/05/30 19:12:26 helly Exp $ */
 
 #include <stdlib.h>
 
@@ -726,7 +726,10 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        if (id==-1) { /* explicit resource number */
@@ -773,7 +776,10 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        switch(entry_type) {
@@ -912,7 +918,10 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        convert_to_string_ex(query);
@@ -1593,7 +1602,7 @@
    Enable tracing a PostgreSQL connection */
 PHP_FUNCTION(pg_trace)
 {
-       zval **z_filename, **z_mode, **z_pgsql_link = NULL;
+       zval **z_filename, **z_mode, **pgsql_link = NULL;
        int id = -1;
        PGconn *pgsql;
        char *mode = "w";
@@ -1617,7 +1626,7 @@
                        mode = Z_STRVAL_PP(z_mode);
                        break;
                case 3:
-                       if (zend_get_parameters_ex(3, &z_filename, &z_mode, 
&z_pgsql_link)==FAILURE) {
+                       if (zend_get_parameters_ex(3, &z_filename, &z_mode, 
&pgsql_link)==FAILURE) {
                                RETURN_FALSE;
                        }
                        convert_to_string_ex(z_mode);
@@ -1627,8 +1636,11 @@
                        ZEND_WRONG_PARAM_COUNT();
                        break;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
-       ZEND_FETCH_RESOURCE2(pgsql, PGconn *, z_pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
+       ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
        convert_to_string_ex(z_filename);
 
        stream = php_stream_open_wrapper(Z_STRVAL_PP(z_filename), mode, 
ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL);
@@ -1669,6 +1681,9 @@
                        ZEND_WRONG_PARAM_COUNT();
                        break;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
        PQuntrace(pgsql);
@@ -1699,7 +1714,10 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
        
        /* NOTE: Archive modes not supported until I get some more data. Don't think 
anybody's
@@ -1774,7 +1792,10 @@
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires 1 or 2 
arguments.");
                RETURN_FALSE;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        if (lo_unlink(pgsql, oid) == -1) {
@@ -1843,6 +1864,9 @@
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires 1 or 2 
arguments.");
                RETURN_FALSE;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
        
@@ -2080,6 +2104,10 @@
                RETURN_FALSE;
        }
 
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        oid = lo_import(pgsql, file_in);
@@ -2174,6 +2202,10 @@
                RETURN_FALSE;
        }
 
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        if (lo_export(pgsql, oid, file_out)) {
@@ -2256,7 +2288,10 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
-       
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
+
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
        convert_to_string_ex(encoding);
@@ -2288,6 +2323,9 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
@@ -2332,6 +2370,9 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 
@@ -2372,6 +2413,9 @@
                        WRONG_PARAM_COUNT;
                        break;
        }
+       if (pgsql_link == NULL && id == -1) {
+               RETURN_FALSE;
+       }       
 
        ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", 
le_link, le_plink);
 



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

Reply via email to