From Michael Labedzki, call data dissector instead if handle is NULL.
authoreapache <eapache@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 5 Nov 2013 13:17:55 +0000 (13:17 +0000)
committereapache <eapache@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 5 Nov 2013 13:17:55 +0000 (13:17 +0000)
Fixes https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9379

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@53087 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-rtp.c

index 1f4b04375d83cb1992dbfca74f08fa1eeb0097aa..30ffef3774d20c77144ae6dbe4f1f9767842636f 100644 (file)
@@ -1144,7 +1144,10 @@ process_rtp_payload(tvbuff_t *newtvb, packet_info *pinfo, proto_tree *tree,
                }
 
                nexttvb = tvb_new_subset_remaining(newtvb, suboffset);
-               call_dissector(p_conv_data->bta2dp_info->codec_dissector, nexttvb, pinfo, tree);
+               if (p_conv_data->bta2dp_info->codec_dissector)
+                       call_dissector(p_conv_data->bta2dp_info->codec_dissector, nexttvb, pinfo, tree);
+               else
+                       call_dissector(data_handle, nexttvb, pinfo, tree);
        } else if (p_conv_data && p_conv_data->btvdp_info) {
                tvbuff_t  *nexttvb;
                gint       suboffset = 0;
@@ -1158,7 +1161,10 @@ process_rtp_payload(tvbuff_t *newtvb, packet_info *pinfo, proto_tree *tree,
                }
 
                nexttvb = tvb_new_subset_remaining(newtvb, suboffset);
-               call_dissector(p_conv_data->btvdp_info->codec_dissector, nexttvb, pinfo, tree);
+               if (p_conv_data->btvdp_info->codec_dissector)
+                       call_dissector(p_conv_data->btvdp_info->codec_dissector, nexttvb, pinfo, tree);
+               else
+                       call_dissector(data_handle, nexttvb, pinfo, tree);
        }
 
        /* if we don't found, it is static OR could be set static from the preferences */