diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-01-13 07:03:14 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-01-13 07:03:14 +0000 |
commit | 64657086529439489ec557efe61dc3e8e4020fbb (patch) | |
tree | b86aef9e8f35cbac2edef4386d7bc0d7ba889b47 /epan/dissectors/packet-dlsw.c | |
parent | 673665ae6ccb479f9d7ccf42c6290d126b0139cb (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.c | 4 |
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)) ; |