aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sdp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2019-10-30 15:53:43 +0100
committerAnders Broman <a.broman58@gmail.com>2019-10-30 15:22:04 +0000
commit79239431c746ca8ae4f707e914247967b5ce33a8 (patch)
tree44afb66c3ec0ad62b405b1d8e70e0a66db8a6731 /epan/dissectors/packet-sdp.c
parent14c87d8935e1c6ec7c8bfac2126fd612e7e8845b (diff)
SDP: Handle MCPTT fmtp parameter.
Change-Id: I1f1a6ce84395e5d3922b4bcb08f0d7627bef603c Reviewed-on: https://code.wireshark.org/review/34891 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-sdp.c')
-rw-r--r--epan/dissectors/packet-sdp.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c
index 9b9e0fb7e3..fd536d356a 100644
--- a/epan/dissectors/packet-sdp.c
+++ b/epan/dissectors/packet-sdp.c
@@ -1743,19 +1743,22 @@ static void dissect_sdp_media_attribute(tvbuff_t *tvb, packet_info *pinfo, proto
tokenlen = next_offset - offset;
-
- media_format_item = proto_tree_add_item(sdp_media_attribute_tree,
- hf_media_format, tvb, offset,
- tokenlen, ENC_UTF_8|ENC_NA);
- if (!ws_strtou8(tvb_get_string_enc(wmem_packet_scope(), tvb, offset, tokenlen, ENC_UTF_8|ENC_NA),
- NULL, &media_format) || media_format >= SDP_NO_OF_PT) {
- expert_add_info(pinfo, media_format_item, &ei_sdp_invalid_media_format);
- return;
+ media_format_item = proto_tree_add_item_ret_string(sdp_media_attribute_tree, hf_media_format, tvb,
+ offset, tokenlen, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), &payload_type);
+
+ media_format = 0;
+ if (g_ascii_strncasecmp(payload_type, "MCPTT", 5) != 0) {
+ if (!ws_strtou8(payload_type, NULL, &media_format) || media_format >= SDP_NO_OF_PT) {
+ expert_add_info(pinfo, media_format_item, &ei_sdp_invalid_media_format);
+ return;
+ }
+ /* Append encoding name to format if known */
+ if (media_format) {
+ proto_item_append_text(media_format_item, " [%s]",
+ transport_info->encoding_name[media_format]);
+ }
}
- /* Append encoding name to format if known */
- proto_item_append_text(media_format_item, " [%s]",
- transport_info->encoding_name[media_format]);
#if 0 /* XXX: ?? */
payload_type = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, tokenlen, ENC_ASCII);