aboutsummaryrefslogtreecommitdiffstats
path: root/cdr
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-24 16:36:09 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-24 16:36:09 +0000
commitad868c9fd69029e65febf11bcb7df19f036756c6 (patch)
tree2fef87657fc2167fd9ccd3d988c7180cea6ba06c /cdr
parent22f734896e32b4f35fd22daa4a9c1ed8bd90d9f7 (diff)
Merged revisions 139707 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r139707 | tilghman | 2008-08-24 11:26:48 -0500 (Sun, 24 Aug 2008) | 2 lines Memory leak ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@139709 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cdr')
-rw-r--r--cdr/cdr_pgsql.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index 3f518cc4d..40c64bc9c 100644
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -132,7 +132,17 @@ static int pgsql_log(struct ast_cdr *cdr)
int lensql, lensql2, sizesql = maxsize, sizesql2 = maxsize2, newsize;
char *sql = ast_calloc(sizeof(char), sizesql), *sql2 = ast_calloc(sizeof(char), sizesql2), *tmp, *value;
char buf[257], escapebuf[513];
-
+
+ if (!sql || !sql2) {
+ if (sql) {
+ ast_free(sql);
+ }
+ if (sql2) {
+ ast_free(sql2);
+ }
+ return -1;
+ }
+
lensql = snprintf(sql, sizesql, "INSERT INTO %s (", table);
lensql2 = snprintf(sql2, sizesql2, " VALUES (");
@@ -288,6 +298,8 @@ static int pgsql_log(struct ast_cdr *cdr)
conn = NULL;
connected = 0;
ast_mutex_unlock(&pgsql_lock);
+ ast_free(sql);
+ ast_free(sql2);
return -1;
}
}
@@ -311,9 +323,13 @@ static int pgsql_log(struct ast_cdr *cdr)
}
ast_mutex_unlock(&pgsql_lock);
PQclear(result);
+ ast_free(sql);
+ ast_free(sql2);
return -1;
}
PQclear(result);
+ ast_free(sql);
+ ast_free(sql2);
}
ast_mutex_unlock(&pgsql_lock);
return 0;