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:
parent
5050e04101
commit
4e14faaefe
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue