res_pjsip: Fix initialization of extended stringfields.

It is possible for initialization of extended stringfields to fail.  Add
checks for this failure.

Change-Id: I062e09852db3d37ceefaf6c2048958fa0118304f
This commit is contained in:
Corey Farrell
2018-04-18 17:24:31 -04:00
parent d474763a2c
commit ea14243971
2 changed files with 7 additions and 9 deletions
+5 -6
View File
@@ -118,16 +118,15 @@ static void *contact_alloc(const char *name)
return NULL;
}
if (ast_string_field_init(contact, 256)) {
if (ast_string_field_init(contact, 256)
|| ast_string_field_init_extended(contact, endpoint_name)
|| ast_string_field_init_extended(contact, reg_server)
|| ast_string_field_init_extended(contact, via_addr)
|| ast_string_field_init_extended(contact, call_id)) {
ao2_cleanup(contact);
return NULL;
}
ast_string_field_init_extended(contact, endpoint_name);
ast_string_field_init_extended(contact, reg_server);
ast_string_field_init_extended(contact, via_addr);
ast_string_field_init_extended(contact, call_id);
/* Dynamic contacts are delimited with ";@" and static ones with "@@" */
if ((aor_separator = strstr(id, ";@")) || (aor_separator = strstr(id, "@@"))) {
*aor_separator = '\0';
+2 -3
View File
@@ -2197,13 +2197,12 @@ void *ast_sip_endpoint_alloc(const char *name)
if (!endpoint) {
return NULL;
}
if (ast_string_field_init(endpoint, 64)) {
if (ast_string_field_init(endpoint, 64)
|| ast_string_field_init_extended(endpoint, incoming_mwi_mailbox)) {
ao2_cleanup(endpoint);
return NULL;
}
ast_string_field_init_extended(endpoint, incoming_mwi_mailbox);
if (!(endpoint->media.codecs = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
ao2_cleanup(endpoint);
return NULL;