mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
pbx.c: On error, ast_add_extension2_lockopt should always free 'data'
In the event that the desired extension already exists, ast_add_extension2_lockopt() will free the 'data' it is passed before returning an error, so we should not be freeing it ourselves. Additionally, there were two places where ast_add_extension2_lockopt() could return an error without also freeing the 'data' pointer, so we add that. ASTERISK-29097 #close Change-Id: I904707aae55169feda050a5ed7c6793b53fe6eae
This commit is contained in:
committed by
Friendly Automation
parent
773f424c7f
commit
51cba591e3
@@ -660,7 +660,6 @@ static int parking_duration_callback(struct ast_bridge_channel *bridge_channel,
|
||||
dial_string_flat, PARK_DIAL_CONTEXT, ast_get_extension_registrar(existing_exten));
|
||||
} else if (ast_add_extension2_nolock(park_dial_context, 1, dial_string_flat, 1, NULL, NULL,
|
||||
"Dial", duplicate_returnexten, ast_free_ptr, BASE_REGISTRAR, NULL, 0)) {
|
||||
ast_free(duplicate_returnexten);
|
||||
ast_log(LOG_ERROR, "Failed to create parking redial parker extension %s@%s - Dial(%s)\n",
|
||||
dial_string_flat, PARK_DIAL_CONTEXT, returnexten);
|
||||
}
|
||||
|
Reference in New Issue
Block a user