diff options
author | Michael Mann <mmann78@netscape.net> | 2014-11-22 20:47:59 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-11-25 15:18:05 +0000 |
commit | e3a04bb392824781b8a3ef6ec98a37ef96c6c827 (patch) | |
tree | c51c48f12e302c76bc2c1619d24b9787384db261 /epan/dissectors/packet-jxta.c | |
parent | 7f22ce7f6610333f4b40dfad6cde22e352abae6f (diff) |
Ensure dissector data parameter is used instead of pinfo->private_data when passing data between dissectors using the "media_type" subdissector.
Change-Id: I82cbfed770b41404bc42cb6a4413db07d04dffdc
Reviewed-on: https://code.wireshark.org/review/5462
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-jxta.c')
-rw-r--r-- | epan/dissectors/packet-jxta.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c index d73d796f03..2e4ec17010 100644 --- a/epan/dissectors/packet-jxta.c +++ b/epan/dissectors/packet-jxta.c @@ -2049,16 +2049,12 @@ static int dissect_media( const gchar* fullmediatype, tvbuff_t * tvb, packet_inf gchar *mediatype = wmem_strdup(wmem_packet_scope(), fullmediatype); gchar *parms_at = strchr(mediatype, ';'); const char *save_match_string = pinfo->match_string; - void * save_private_data = pinfo->private_data; char *media_str = NULL; /* Based upon what is done in packet-media.c we set up type and params */ if (NULL != parms_at) { - pinfo->private_data = wmem_strdup( wmem_packet_scope(), parms_at + 1 ); - media_str = (char*)pinfo->private_data; + media_str = wmem_strdup( wmem_packet_scope(), parms_at + 1 ); *parms_at = '\0'; - } else { - pinfo->private_data = NULL; } /* Set the version that goes to packet-media.c before converting case */ @@ -2088,7 +2084,7 @@ static int dissect_media( const gchar* fullmediatype, tvbuff_t * tvb, packet_inf } } } else { - dissected = dissector_try_string(media_type_dissector_table, mediatype, tvb, pinfo, tree, NULL) ? tvb_length(tvb) : 0; + dissected = dissector_try_string(media_type_dissector_table, mediatype, tvb, pinfo, tree, media_str) ? tvb_length(tvb) : 0; if( dissected != (int) tvb_length(tvb) ) { /* g_message( "%s : %d expected, %d dissected", mediatype, tvb_length(tvb), dissected ); */ @@ -2100,12 +2096,11 @@ static int dissect_media( const gchar* fullmediatype, tvbuff_t * tvb, packet_inf } pinfo->match_string = save_match_string; - pinfo->private_data = save_private_data; } if(0 == dissected) { /* display it as raw data */ - dissected = call_dissector_only(data_handle, tvb, pinfo, tree, NULL); + dissected = call_dissector(data_handle, tvb, pinfo, tree); } return dissected; |