aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2007-02-22 20:40:19 +0000
committerAnders Broman <anders.broman@ericsson.com>2007-02-22 20:40:19 +0000
commit33910c713fabb0c4b5d6310bf1f373bcce4f91d7 (patch)
tree44eb096b5cc396745ba96d4bbadb6a0c22f08598 /epan/dissectors/packet-rtp.c
parent211cdda3864dcfcd3ceb091cc48c047020cdf548 (diff)
From Richard van der Hoff:
Along with this bug, identified by Mark, there is another problem, in that one of the chunks of my earlier patch seemed to get missed off when Anders committed it. This won't break anything yet, as the H.223-over-RTP dissection hasn't landed on trunk yet, but it will cause all sorts of nasties when it does. Here is a new patch, against current trunk, which should fix Mark's bug, my bug, and a comment typo. And a patch wich improves the general robustness of the h.223 dissector (making it less likely to crash on malformed data). Hopefully this also fixes a bug raised by Fabio Sguanci a few weeks ago. Fabio: I think a better way to fix the problem is to stop the dissector crashing when it finds a malformed PDU, so that it just treats the first pdu as malformed; there is then no need to special-case it. svn path=/trunk/; revision=20898
Diffstat (limited to 'epan/dissectors/packet-rtp.c')
-rw-r--r--epan/dissectors/packet-rtp.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 69002441a9..7744a76678 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -227,9 +227,8 @@ static gboolean global_rtp_show_setup_info = TRUE;
/* Try heuristic RTP decode */
static gboolean global_rtp_heur = FALSE;
- /* desegmnent RTP streams */
- static gboolean desegment_rtp = TRUE;
-
+/* desegment RTP streams */
+static gboolean desegment_rtp = TRUE;
/* RFC2198 Redundant Audio Data */
static guint rtp_rfc2198_pt = 99;
@@ -555,7 +554,7 @@ dissect_rtp_data( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if(finfo == NULL || !desegment_rtp) {
/* Hand the whole lot off to the subdissector */
newtvb=tvb_new_subset(tvb,offset,data_len,data_reported_len);
- process_rtp_payload(tvb, pinfo, tree, rtp_tree, payload_type);
+ process_rtp_payload(newtvb, pinfo, tree, rtp_tree, payload_type);
return;
}
@@ -1746,6 +1745,8 @@ proto_register_rtp(void)
"Payload Type for RFC2198 Redundant Audio Data",
10,
&rtp_rfc2198_pt);
+
+ register_init_routine(rtp_fragment_init);
}
void