diff options
author | Peter Eisentraut | 2012-03-08 20:21:12 +0000 |
---|---|---|
committer | Peter Eisentraut | 2012-03-08 20:21:12 +0000 |
commit | 8dd4d10d481ec1da568ab424e62a3e50c069baaf (patch) | |
tree | d9a01d79447ec937724b6896e457a4613deb6bc5 | |
parent | d93f209f483f006534ae543667a1254b6fdec183 (diff) |
ecpg: Fix rare memory leaks
found by Coverity
-rw-r--r-- | src/interfaces/ecpg/ecpglib/connect.c | 4 | ||||
-rw-r--r-- | src/interfaces/ecpg/ecpglib/execute.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c index cf625f96a3..b54b1f5503 100644 --- a/src/interfaces/ecpg/ecpglib/connect.c +++ b/src/interfaces/ecpg/ecpglib/connect.c @@ -519,6 +519,10 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p ecpg_free(realname); if (dbname) ecpg_free(dbname); + if (conn_keywords) + ecpg_free(conn_keywords); + if (conn_values) + ecpg_free(conn_values); free(this); return false; } diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index 311bc5cbc5..50a2d95347 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1776,6 +1776,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char { setlocale(LC_NUMERIC, oldlocale); ecpg_free(oldlocale); + free_statement(stmt); va_end(args); return (false); } @@ -1807,6 +1808,7 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char ecpg_raise(lineno, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, stmt->command); setlocale(LC_NUMERIC, oldlocale); ecpg_free(oldlocale); + free_statement(stmt); va_end(args); return (false); } |