res_pjsip_session: sdp group:BUNDLE attribute being truncated
authorKevin Harwell <kharwell@digium.com>
Fri, 6 Jul 2018 20:05:47 +0000 (15:05 -0500)
committerKevin Harwell <kharwell@digium.com>
Fri, 6 Jul 2018 20:40:48 +0000 (15:40 -0500)
When setting/appending the media id's to the bundle group attribute a '-1' was
being passed to the 'ast_str_set/append' function for the 'max_len' parameter.
This essentially capped the length of the string to what it was originally
allocated with. In this case 64 bytes.

This patch makes it so a '0' is passed as in for the 'max_len', which means
"no maximum length".

ASTERISK-27955 #close

Change-Id: Iec565df6600401d54a502854a53d19bb4cc34876

res/res_pjsip_session.c

index 1ec6901..c89a7a3 100644 (file)
@@ -3846,14 +3846,14 @@ static int add_bundle_groups(struct ast_sip_session *session, pj_pool_t *pool, p
                                continue;
                        }
 
-                       ast_str_set(&bundle_group->attr_string, -1, "BUNDLE %s", session_media->mid);
+                       ast_str_set(&bundle_group->attr_string, 0, "BUNDLE %s", session_media->mid);
                        continue;
                }
 
                for (mid_id = 1; mid_id < PJMEDIA_MAX_SDP_MEDIA; ++mid_id) {
                        if (!bundle_group->mids[mid_id]) {
                                bundle_group->mids[mid_id] = session_media->mid;
-                               ast_str_append(&bundle_group->attr_string, -1, " %s", session_media->mid);
+                               ast_str_append(&bundle_group->attr_string, 0, " %s", session_media->mid);
                                break;
                        } else if (!strcmp(bundle_group->mids[mid_id], session_media->mid)) {
                                break;