diff options
author | Michael Mann <mmann78@netscape.net> | 2015-08-25 19:14:59 -0400 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-08-27 04:34:10 +0000 |
commit | 0af048b7e40ee92d6702df873cbc515ae2eff9c8 (patch) | |
tree | f980825d5b37ce5c5d322b149c122b0704edd6ff /epan/dissectors | |
parent | 374439daa17fe2692746857b920616354ce658e7 (diff) |
Remove calls of tvb_ensure_length_remaining.
The remaining calls seem to fall into 3 categories:
1. passing it to tvb_find_line_end when -1 (for length) will do.
2. duplicating the checking of tvb_reported_length_remaining, which is already in use near the tvb_ensure_length_remaining call.
3. Those that (probably) need tvb_ensure_capture_length_remaining
Change-Id: I1e77695251e055644bcbbb89f3c181c65d1671ca
Reviewed-on: https://code.wireshark.org/review/10268
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')
-rw-r--r-- | epan/dissectors/packet-l1-events.c | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-ldss.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-memcache.c | 16 | ||||
-rw-r--r-- | epan/dissectors/packet-nbt.c | 14 | ||||
-rw-r--r-- | epan/dissectors/packet-rtsp.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-ssh.c | 12 | ||||
-rw-r--r-- | epan/dissectors/packet-syslog.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-tds.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-text-media.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-x11.c | 21 | ||||
-rw-r--r-- | epan/dissectors/packet-xcsl.c | 7 |
11 files changed, 24 insertions, 77 deletions
diff --git a/epan/dissectors/packet-l1-events.c b/epan/dissectors/packet-l1-events.c index 586573673a..f05fe6d83e 100644 --- a/epan/dissectors/packet-l1-events.c +++ b/epan/dissectors/packet-l1-events.c @@ -56,8 +56,7 @@ dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat col_set_str(pinfo->cinfo, COL_PROTOCOL, "Layer1"); col_set_str(pinfo->cinfo, COL_DEF_SRC, pinfo->pseudo_header->l1event.uton? "TE" : "NT"); - len = tvb_find_line_end(tvb, 0, tvb_ensure_length_remaining(tvb, 0), - &next_offset, FALSE); + len = tvb_find_line_end(tvb, 0, -1, &next_offset, FALSE); if(len>0) col_add_str(pinfo->cinfo, COL_INFO, tvb_format_text(tvb, 0, len)); @@ -76,9 +75,7 @@ dissect_l1_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat * as "iso-10646-ucs-2", or might require other * special processing. */ - len = tvb_find_line_end(tvb, offset, - tvb_ensure_length_remaining(tvb, offset), - &next_offset, FALSE); + len = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); if (len == -1) break; diff --git a/epan/dissectors/packet-ldss.c b/epan/dissectors/packet-ldss.c index bf50cb8f51..1d04153ddc 100644 --- a/epan/dissectors/packet-ldss.c +++ b/epan/dissectors/packet-ldss.c @@ -517,9 +517,7 @@ dissect_ldss_transfer (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void gboolean is_digest_line; guint digest_type_len; - linelen = tvb_find_line_end(tvb, offset, - tvb_ensure_length_remaining(tvb, offset), &next_offset, - FALSE); + linelen = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); /* Include new-line in line */ line = (guint8 *)tvb_memdup(NULL, tvb, offset, linelen+1); /* XXX - memory leak? */ diff --git a/epan/dissectors/packet-memcache.c b/epan/dissectors/packet-memcache.c index f28964af8b..75559dfee6 100644 --- a/epan/dissectors/packet-memcache.c +++ b/epan/dissectors/packet-memcache.c @@ -622,8 +622,7 @@ get_payload_length (tvbuff_t *tvb, const int token_number, int offset, gint next_offset; /* get the header line. */ - linelen = tvb_find_line_end (tvb, offset, - tvb_ensure_length_remaining (tvb, offset), &next_offset, + linelen = tvb_find_line_end (tvb, offset, -1, &next_offset, FALSE); if (linelen < 0) { return FALSE; @@ -820,8 +819,7 @@ dissect_memcache_message (tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t * is not longer than what's in the buffer, so the * "tvb_get_ptr ()" call won't throw an exception. */ - first_linelen = tvb_find_line_end (tvb, offset, - tvb_ensure_length_remaining (tvb, offset), &next_offset, + first_linelen = tvb_find_line_end (tvb, offset, -1, &next_offset, FALSE); if (first_linelen < 0) { return -1; @@ -1005,9 +1003,7 @@ incr_dissector (tvbuff_t *tvb, proto_tree *tree, int offset) /* expecting to read 'bytes' number of bytes from the buffer. */ if (tvb_offset_exists (tvb, offset)) { /* Find the end of the line. */ - linelen = tvb_find_line_end (tvb, offset, - tvb_ensure_length_remaining (tvb, offset), &next_offset, - FALSE); + linelen = tvb_find_line_end (tvb, offset, -1, &next_offset, FALSE); if (linelen < 0) { /* header is out of the packet limits. */ return -1; @@ -1056,8 +1052,7 @@ stat_dissector (tvbuff_t *tvb, proto_tree *tree, int offset) while (tvb_offset_exists (tvb, offset)) { /* Find the end of the line. */ - linelen = tvb_find_line_end (tvb, offset, - tvb_ensure_length_remaining (tvb, offset), &next_offset, + linelen = tvb_find_line_end (tvb, offset, -1, &next_offset, FALSE); if (linelen < 0) { return -1; @@ -1169,8 +1164,7 @@ get_response_dissector (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int /* expecting to read 'bytes' number of bytes from the buffer. */ while (tvb_offset_exists (tvb, offset)) { /* Find the end of the line. */ - linelen = tvb_find_line_end (tvb, offset, - tvb_ensure_length_remaining (tvb, offset), &next_offset, + linelen = tvb_find_line_end (tvb, offset, -1, &next_offset, FALSE); if (linelen < 0) { /* header is out of the packet limits. */ diff --git a/epan/dissectors/packet-nbt.c b/epan/dissectors/packet-nbt.c index 65c01bc9e9..73cb49ca92 100644 --- a/epan/dissectors/packet-nbt.c +++ b/epan/dissectors/packet-nbt.c @@ -1706,19 +1706,7 @@ dissect_nbss(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) col_add_str(pinfo->cinfo, COL_INFO, val_to_str(msg_type, message_types, "Unknown (%02x)")); - while (tvb_reported_length_remaining(tvb, offset) > 0) { - /* - * We use "tvb_ensure_length_remaining()" to make sure there actually - * *is* data remaining. The protocol we're handling could conceivably - * consists of a sequence of fixed-length PDUs, and therefore the - * "get_pdu_len" routine might not actually fetch anything from - * the tvbuff, and thus might not cause an exception to be thrown if - * we've run past the end of the tvbuff. - * - * This means we're guaranteed that "length_remaining" is positive. - */ - length_remaining = tvb_ensure_length_remaining(tvb, offset); - + while ((length_remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { /* * Can we do reassembly? */ diff --git a/epan/dissectors/packet-rtsp.c b/epan/dissectors/packet-rtsp.c index 791d40aa1c..f3d60ad30b 100644 --- a/epan/dissectors/packet-rtsp.c +++ b/epan/dissectors/packet-rtsp.c @@ -298,7 +298,7 @@ dissect_rtspinterleaved(tvbuff_t *tvb, int offset, packet_info *pinfo, * That's what we want. (See "tcp_dissect_pdus()", which is * similar.) */ - length_remaining = tvb_ensure_length_remaining(tvb, offset); + length_remaining = tvb_ensure_captured_length_remaining(tvb, offset); /* * Can we do reassembly? @@ -737,9 +737,7 @@ dissect_rtspmessage(tvbuff_t *tvb, int offset, packet_info *pinfo, * is not longer than what's in the buffer, so the * "tvb_get_ptr()" call won't throw an exception. */ - first_linelen = tvb_find_line_end(tvb, offset, - tvb_ensure_length_remaining(tvb, offset), &next_offset, - FALSE); + first_linelen = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); /* * Is the first line a request or response? @@ -851,9 +849,7 @@ dissect_rtspmessage(tvbuff_t *tvb, int offset, packet_info *pinfo, /* * Find the end of the line. */ - linelen = tvb_find_line_end(tvb, offset, - tvb_ensure_length_remaining(tvb, offset), &next_offset, - FALSE); + linelen = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); if (linelen < 0) return -1; line_end_offset = offset + linelen; diff --git a/epan/dissectors/packet-ssh.c b/epan/dissectors/packet-ssh.c index e108fbefdb..859e67805c 100644 --- a/epan/dissectors/packet-ssh.c +++ b/epan/dissectors/packet-ssh.c @@ -491,12 +491,12 @@ ssh_dissect_ssh1(tvbuff_t *tvb, packet_info *pinfo, ssh1_tree=proto_tree_add_subtree(tree, tvb, offset, -1, ett_ssh1, NULL, "SSH Version 1"); /* - * We use "tvb_ensure_length_remaining()" to make sure there + * We use "tvb_ensure_captured_length_remaining()" to make sure there * actually *is* data remaining. * * This means we're guaranteed that "remain_length" is positive. */ - remain_length = tvb_ensure_length_remaining(tvb, offset); + remain_length = tvb_ensure_captured_length_remaining(tvb, offset); /* * Can we do reassembly? */ @@ -635,12 +635,12 @@ ssh_dissect_key_exchange(tvbuff_t *tvb, packet_info *pinfo, struct ssh_peer_data *peer_data = &global_data->peer_data[is_response]; /* - * We use "tvb_ensure_length_remaining()" to make sure there + * We use "tvb_ensure_captured_length_remaining()" to make sure there * actually *is* data remaining. * * This means we're guaranteed that "remain_length" is positive. */ - remain_length = tvb_ensure_length_remaining(tvb, offset); + remain_length = tvb_ensure_captured_length_remaining(tvb, offset); /* * Can we do reassembly? */ @@ -896,12 +896,12 @@ ssh_dissect_protocol(tvbuff_t *tvb, packet_info *pinfo, } /* - * We use "tvb_ensure_length_remaining()" to make sure there + * We use "tvb_ensure_captured_length_remaining()" to make sure there * actually *is* data remaining. * * This means we're guaranteed that "remain_length" is positive. */ - remain_length = tvb_ensure_length_remaining(tvb, offset); + remain_length = tvb_ensure_captured_length_remaining(tvb, offset); /*linelen = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); */ linelen = tvb_find_guint8(tvb, offset, -1, '\n'); diff --git a/epan/dissectors/packet-syslog.c b/epan/dissectors/packet-syslog.c index 173cfd6667..92bf700b88 100644 --- a/epan/dissectors/packet-syslog.c +++ b/epan/dissectors/packet-syslog.c @@ -252,7 +252,7 @@ dissect_syslog(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) lev = pri & PRIORITY_MASK; } - msg_len = tvb_ensure_length_remaining(tvb, msg_off); + msg_len = tvb_ensure_captured_length_remaining(tvb, msg_off); msg_str = tvb_format_text(tvb, msg_off, msg_len); reported_msg_len = tvb_reported_length_remaining(tvb, msg_off); diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c index f62aba044e..d0035d4382 100644 --- a/epan/dissectors/packet-tds.c +++ b/epan/dissectors/packet-tds.c @@ -2442,9 +2442,7 @@ dissect_tds_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *tds_item = NULL; proto_tree *tds_tree = NULL; - while (tvb_reported_length_remaining(tvb, offset) != 0) { - length_remaining = tvb_ensure_length_remaining(tvb, offset); - + while ((length_remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { /* * Can we do reassembly? */ diff --git a/epan/dissectors/packet-text-media.c b/epan/dissectors/packet-text-media.c index bba17354fa..f550d31b60 100644 --- a/epan/dissectors/packet-text-media.c +++ b/epan/dissectors/packet-text-media.c @@ -108,9 +108,7 @@ dissect_text_lines(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da * as "iso-10646-ucs-2", or might require other * special processing. */ - len = tvb_find_line_end(tvb, offset, - tvb_ensure_length_remaining(tvb, offset), - &next_offset, FALSE); + len = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE); if (len == -1) break; diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c index 7710f7b720..da36203796 100644 --- a/epan/dissectors/packet-x11.c +++ b/epan/dissectors/packet-x11.c @@ -4505,15 +4505,7 @@ static void dissect_x11_requests(tvbuff_t *tvb, packet_info *pinfo, int length; tvbuff_t *volatile next_tvb; - while (tvb_reported_length_remaining(tvb, offset) != 0) { - /* - * We use "tvb_ensure_length_remaining()" to make sure there - * actually *is* data remaining. - * - * This means we're guaranteed that "length_remaining" is - * positive. - */ - length_remaining = tvb_ensure_length_remaining(tvb, offset); + while ((length_remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { /* * Can we do reassembly? @@ -4854,16 +4846,7 @@ dissect_x11_replies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) byte_order = guess_byte_ordering(tvb, pinfo, state); offset = 0; - while (tvb_reported_length_remaining(tvb, offset) != 0) { - /* - * We use "tvb_ensure_length_remaining()" to make sure there - * actually *is* data remaining. - * - * This means we're guaranteed that "length_remaining" is - * positive. - */ - length_remaining = tvb_ensure_length_remaining(tvb, offset); - + while ((length_remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { /* * Can we do reassembly? */ diff --git a/epan/dissectors/packet-xcsl.c b/epan/dissectors/packet-xcsl.c index 8c17c0801d..582fa41482 100644 --- a/epan/dissectors/packet-xcsl.c +++ b/epan/dissectors/packet-xcsl.c @@ -173,12 +173,7 @@ static void dissect_xcsl_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* switch whether it concerns a command or an answer */ request = FALSE; - while (tvb_reported_length_remaining(tvb, offset) != 0) { - - length_remaining = tvb_ensure_length_remaining(tvb, offset); - if ( length_remaining == -1 ) { - return; - } + while ((length_remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { /* get next item */ if (!(get_next_item(tvb, offset, length_remaining, str, &next_offset, &len))) { |