From 4e14faaefe4edc5b1f32c2a42f2ac2acdcdc5541 Mon Sep 17 00:00:00 2001
From: David Vossel <dvossel@digium.com>
Date: Tue, 10 Nov 2009 15:27:45 +0000
Subject: [PATCH] fixes pgsql double free of threadstorage

A thread storage variable was being freed incorrectly, which
resulted in a double free if two queries were made in the same thread.

(closes issue #16011)
Reported by: cristiandimache
Patches:
      issue16011.diff uploaded by dvossel (license 671)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@229093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_config_pgsql.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/res/res_config_pgsql.c b/res/res_config_pgsql.c
index 5622d67623..e4bffd307d 100644
--- a/res/res_config_pgsql.c
+++ b/res/res_config_pgsql.c
@@ -678,7 +678,6 @@ static int update_pgsql(const char *database, const char *tablename, const char
 		ast_debug(1, "PostgreSQL RealTime: Query: %s\n", ast_str_buffer(sql));
 		ast_debug(1, "PostgreSQL RealTime: Query Failed because: %s\n", PQerrorMessage(pgsqlConn));
 		ast_mutex_unlock(&pgsql_lock);
-		ast_free(sql);
 		return -1;
 	} else {
 		ExecStatusType result_status = PQresultStatus(result);
@@ -691,14 +690,12 @@ static int update_pgsql(const char *database, const char *tablename, const char
 			ast_debug(1, "PostgreSQL RealTime: Query Failed because: %s (%s)\n",
 						PQresultErrorMessage(result), PQresStatus(result_status));
 			ast_mutex_unlock(&pgsql_lock);
-			ast_free(sql);
 			return -1;
 		}
 	}
 
 	numrows = atoi(PQcmdTuples(result));
 	ast_mutex_unlock(&pgsql_lock);
-	ast_free(sql);
 
 	ast_debug(1, "PostgreSQL RealTime: Updated %d rows on table: %s\n", numrows, tablename);
 
-- 
GitLab