From: Corey Farrell Date: Wed, 18 Apr 2018 21:24:31 +0000 (-0400) Subject: res_pjsip: Fix initialization of extended stringfields. X-Git-Tag: 13.22.0-rc1~82^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea142439717a4f565e978805e1f994e86cdc2ed3;p=thirdparty%2Fasterisk.git 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 --- diff --git a/res/res_pjsip/location.c b/res/res_pjsip/location.c index 52d84c3ceb..3abba3bb44 100644 --- a/res/res_pjsip/location.c +++ b/res/res_pjsip/location.c @@ -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'; diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c index e88f019642..5e5d40c691 100644 --- a/res/res_pjsip/pjsip_configuration.c +++ b/res/res_pjsip/pjsip_configuration.c @@ -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;