res_config_pgsql: Release table locks where appropriate

The find_table() functions NULL or a locked table pointer. We are
not consistently calling release_table() in failure paths.

Change-Id: I6f665b455799c84b036e5b34904b82b05eab9544
changes/04/5104/1
Sean Bright 10 years ago
parent 9d3ab062cc
commit fa8f6c2fc4

@ -768,6 +768,7 @@ static int update_pgsql(const char *database, const char *tablename, const char
ast_mutex_lock(&pgsql_lock);
if (!pgsql_reconnect(database)) {
ast_mutex_unlock(&pgsql_lock);
release_table(table);
return -1;
}
@ -913,6 +914,7 @@ static int update2_pgsql(const char *database, const char *tablename, const stru
ast_mutex_lock(&pgsql_lock);
if (!pgsql_reconnect(database)) {
ast_mutex_unlock(&pgsql_lock);
release_table(table);
return -1;
}
@ -1357,6 +1359,7 @@ static int require_pgsql(const char *database, const char *tablename, va_list ap
if (pgsql_exec(database, tablename, ast_str_buffer(sql), &result) != 0) {
ast_mutex_unlock(&pgsql_lock);
release_table(table);
return -1;
}

Loading…
Cancel
Save