iliaa           Thu Aug 14 13:49:09 2003 EDT

  Modified files:              
    /php-src/ext/pgsql  pgsql.c 
  Log:
  Fixed bug #25093 (Various leaks due to non-freed queries)
  
  
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.288 php-src/ext/pgsql/pgsql.c:1.289
--- php-src/ext/pgsql/pgsql.c:1.288     Sun Jul 27 13:44:20 2003
+++ php-src/ext/pgsql/pgsql.c   Thu Aug 14 13:49:08 2003
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.288 2003/07/27 17:44:20 helly Exp $ */
+/* $Id: pgsql.c,v 1.289 2003/08/14 17:49:08 iliaa Exp $ */
 
 #include <stdlib.h>
 
@@ -1072,6 +1072,7 @@
                case PGRES_FATAL_ERROR:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Query failed: 
%s", PQErrorMessageTrim(pgsql, &msgbuf));
                        efree(msgbuf);
+                       PQclear(pgsql_result);
                        RETURN_FALSE;
                        break;
                case PGRES_COMMAND_OK: /* successful command that did not return rows 
*/
@@ -1083,6 +1084,7 @@
                                pg_result->row = 0;
                                ZEND_REGISTER_RESOURCE(return_value, pg_result, 
le_result);
                        } else {
+                               PQclear(pgsql_result);
                                RETURN_FALSE;
                        }
                        break;
@@ -1229,6 +1231,7 @@
                                ret = estrdup(tmp_name);
                        }
                }
+               PQclear(result);
        }
 
        smart_str_free(&str);
@@ -3299,6 +3302,7 @@
                name = PQgetvalue(pg_result,i,0);
                add_assoc_zval(meta, name, elem);
        }
+       PQclear(pg_result);
        
        return SUCCESS;
 }
@@ -4129,6 +4133,7 @@
 
                pg_result = PQexec(pg_link, querystr->c);
                if (PQresultStatus(pg_result) == expect) {
+                       PQclear(pg_result);
                        return 0;
                } else {
                        php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Failed to execute 
'%s'", querystr->c);
@@ -4598,9 +4603,9 @@
                ret = php_pgsql_result2array(pg_result, ret_array TSRMLS_CC);
        } else {
                php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Failed to execute '%s'", 
querystr.c);
-               PQclear(pg_result);
        }
-       
+       PQclear(pg_result);
+
 cleanup:
        if (!(opt & PGSQL_DML_NO_CONV)) {
                zval_dtor(ids_converted);                       



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

Reply via email to