summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalint Reczey <balint.reczey@ericsson.com>2012-07-18 15:14:45 +0000
committerBalint Reczey <balint.reczey@ericsson.com>2012-07-18 15:14:45 +0000
commit1f37a8cf14ca63e7980694fc7807cb5a7d91dc97 (patch)
treea088f176803eeec1db2507d21f4479f7406f8aa7
parent2350d1aecf163320e73c5caf8f224bfd08e7eb15 (diff)
downloadwireshark-1f37a8cf14ca63e7980694fc7807cb5a7d91dc97.tar.gz
Fix crash in PPP dissector
Make sure that there is enough space allocated for PPP encapsulated CRTP packet's header. The bug can be triggered on an x86_64 system using the cpature file attached to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680056 svn path=/trunk/; revision=43784
-rw-r--r--epan/dissectors/packet-ppp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ppp.c b/epan/dissectors/packet-ppp.c
index 978c9fb5d1..fa295bd8a9 100644
--- a/epan/dissectors/packet-ppp.c
+++ b/epan/dissectors/packet-ppp.c
@@ -4542,6 +4542,11 @@ dissect_iphc_crtp_fh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* allocate a copy of the IP packet */
ip_packet = tvb_memdup(tvb, 0, length);
+ /*
+ * make sure that we will be able to write the write the length information
+ * to the copy at least
+ */
+ tvb_ensure_bytes_exist (tvb, ip_hdr_len, 5);
/* restore the proper values to the IP and UDP length fields */
ip_packet[2] = length >> 8;