mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -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); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user