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