diff options
author | Jeff Morriss <jeff.morriss@ulticom.com> | 2011-03-25 20:04:54 +0000 |
---|---|---|
committer | Jeff Morriss <jeff.morriss@ulticom.com> | 2011-03-25 20:04:54 +0000 |
commit | 38b9f1cfbd77252aac075dbf69939e695638f5e9 (patch) | |
tree | 513ebc0ba3d7074e49700a8d00155dee47f1fe93 /epan/dissectors | |
parent | cc6fc23812104d4a075a3beac738c7dcd3ee8e8b (diff) |
As suggested by Didier in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3055 :
Apply rev 25869 to some more dissectors.
svn path=/trunk/; revision=36333
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-fcip.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-iscsi.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-ldp.c | 14 |
3 files changed, 15 insertions, 13 deletions
diff --git a/epan/dissectors/packet-fcip.c b/epan/dissectors/packet-fcip.c index 0923c6a075..34e0d4610e 100644 --- a/epan/dissectors/packet-fcip.c +++ b/epan/dissectors/packet-fcip.c @@ -189,14 +189,16 @@ NXT_BYTE: while (bytes_remaining) { if(fcip_desegment && pinfo->can_desegment) { /* * This frame doesn't have all of the data for - * this message, but we can do reassembly on it. + * the message header, but we can do reassembly on it. * * Tell the TCP dissector where the data for this - * message starts in the data it handed us, and - * how many more bytes we need, and return. + * message starts in the data it handed us, and that we need + * "some more data." Don't tell it exactly how many bytes + * we need because if/when we ask for even more (after the + * header) that will break reassembly. */ pinfo->desegment_offset = offset; - pinfo->desegment_len = FCIP_ENCAP_HEADER_LEN; + pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT; return -2; } } diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c index 7688643440..6922c6977c 100644 --- a/epan/dissectors/packet-iscsi.c +++ b/epan/dissectors/packet-iscsi.c @@ -1696,11 +1696,11 @@ dissect_iscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean chec iscsi_session_t *iscsi_session=NULL; guint8 opcode, tmpbyte; - if (available_bytes < 48 ){ + if (available_bytes < 48) { /* heuristic already rejected the packet if size < 48, assume it's an iscsi packet with a segmented header */ pinfo->desegment_offset = offset; - pinfo->desegment_len = 48 - available_bytes; + pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT; return TRUE; } diff --git a/epan/dissectors/packet-ldp.c b/epan/dissectors/packet-ldp.c index 8b761fc7c0..392c3a3a93 100644 --- a/epan/dissectors/packet-ldp.c +++ b/epan/dissectors/packet-ldp.c @@ -2922,13 +2922,14 @@ dissect_ldp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) */ if (length_remaining < 4) { /* - * Yes. Tell the TCP dissector where - * the data for this message starts in - * the data it handed us, and how many - * more bytes we need, and return. + * Yes. Tell the TCP dissector where the data for this message + * starts in the data it handed us and that we need "some more + * data." Don't tell it exactly how many bytes we need because + * if/when we ask for even more (after the header) that will + * break reassembly. */ pinfo->desegment_offset = offset; - pinfo->desegment_len = 4 - length_remaining; + pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT; return -((gint32) pinfo->desegment_len); } } @@ -2955,8 +2956,7 @@ dissect_ldp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * need, and return. */ pinfo->desegment_offset = offset; - pinfo->desegment_len = - (plen + 4) - length_remaining; + pinfo->desegment_len = (plen + 4) - length_remaining; return -((gint32) pinfo->desegment_len); } } |