aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dlsw.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-01-13 07:03:14 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-01-13 07:03:14 +0000
commit64657086529439489ec557efe61dc3e8e4020fbb (patch)
treeb86aef9e8f35cbac2edef4386d7bc0d7ba889b47 /epan/dissectors/packet-dlsw.c
parent673665ae6ccb479f9d7ccf42c6290d126b0139cb (diff)
Don't crash on a negative length
svn path=/trunk/; revision=13012
Diffstat (limited to 'epan/dissectors/packet-dlsw.c')
-rw-r--r--epan/dissectors/packet-dlsw.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dlsw.c b/epan/dissectors/packet-dlsw.c
index 7c7de82851..8aa30e6be8 100644
--- a/epan/dissectors/packet-dlsw.c
+++ b/epan/dissectors/packet-dlsw.c
@@ -266,6 +266,10 @@ dissect_dlsw(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_text (dlsw_header_tree,tvb, 39,3,"Reserved") ;
dlchlen=tvb_get_ntohs(tvb,42);
proto_tree_add_text (dlsw_header_tree,tvb, 42,2,"DLC Header Length = %d",dlchlen) ;
+ if ( dlchlen > mlen ){
+ proto_tree_add_text (dlsw_header_tree,tvb, 42,2,"dlchlen > mlen, corrupt packet or not a dlsw packet");
+ return;
+ }
proto_tree_add_text (dlsw_header_tree,tvb, 44,4,"Origin DLC Port ID = %u",tvb_get_ntohl(tvb,44)) ;
proto_tree_add_text (dlsw_header_tree,tvb, 48,4,"Origin DLC = %u",tvb_get_ntohl(tvb,48)) ;
proto_tree_add_text (dlsw_header_tree,tvb, 52,4,"Origin Transport ID = %u",tvb_get_ntohl(tvb,52)) ;