Commit Graph

67 Commits

Author SHA1 Message Date
Stig Bjørlykke cea89ebc80 Use ENC_NA for hf_fragments (FT_NONE).
svn path=/trunk/; revision=38124
2011-07-19 19:37:45 +00:00
Gerald Combs 49b92440de More GLIB_CHECK_VERSION cleanups. Update the minimum GLib/GTK+ versions
in README.devloper. Remove g_gnuc.h since it's no longer needed. Remove
tvbuff_init(), tvbuff_cleanup(), reassemble_init(), and
reassemble_cleanup() since they were only used for older GLib versions
which didn't support GSlices. Assume we always support the "matches"
operator.

svn path=/trunk/; revision=37978
2011-07-11 20:32:19 +00:00
Jeff Morriss 166b14c1df As suggested by Anders: back out 37112.
svn path=/trunk/; revision=37123
2011-05-13 14:21:58 +00:00
Anders Broman 464486e1c5 We should get rid of g_mem_chunk_alloc() as it leaks memory
http://www.wireshark.org/lists/wireshark-dev/200910/msg00074.html
g_slice allocing the keys should make it possible to walk the
fragment table and free the fragments once they are g_slice_alloced.
It remains fo figure out how to do that.

svn path=/trunk/; revision=37112
2011-05-13 05:19:23 +00:00
Chris Maynard a1fcd675e1 From Jakub Zawadzki via wireshark-dev: Fix comment.
svn path=/trunk/; revision=36223
2011-03-21 13:28:20 +00:00
Jeff Morriss 4ed0e07ef0 When reassembling fragments, don't stop looking at fragments just because the
current fragment pushes us past the reassembled size: it may be that the
current fragment is a duplicate/retransmission and will be ignored.

Also, if we detect a conflict between a previous and the current fragment,
flag the current (conflicting) fragment as FD_OVERLAPCONFLICT.  Do *not* flag
the fragment that got us into the reassembly routine (probably the final
fragment): it is not (may not be) the guilty fragment.

Clean up some spacing.

Also add reassembly tests for duplicate/retransmitted fragments.

svn path=/trunk/; revision=36131
2011-03-03 20:22:45 +00:00
Gerald Combs 3e13ddbadc Fix a few errors found by Clang scan-build.
svn path=/trunk/; revision=36002
2011-02-18 19:46:05 +00:00
Stig Bjørlykke 84bc28bd6a Introduce "Fragment count" filter element for all protocols doing reassembly.
svn path=/trunk/; revision=35705
2011-01-30 21:01:07 +00:00
Bill Meier c65ef3a0c2 Rework some comments.
svn path=/trunk/; revision=35176
2010-12-11 04:11:31 +00:00
Bill Meier 0c5da97fb8 Fix bug #5477: fuzz-test failure found by using G_SLICE=debug-blocks.
Essentially: doing g_slice_free with the wrong 'type' for the data to be freed.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5477

svn path=/trunk/; revision=35175
2010-12-11 03:22:09 +00:00
Anders Broman 55fcebeaa8 Mark parameter as unused.
reassemble.c:220: warning: unused parameter 'key_arg'

svn path=/trunk/; revision=35156
2010-12-08 11:25:22 +00:00
Anders Broman 2b23f77b96 reassemble.c: In function 'free_all_fragments':
reassemble.c:222: warning: unused variable 'key'

svn path=/trunk/; revision=35155
2010-12-08 09:12:03 +00:00
Anders Broman c1bf80d555 fragment_free_key to be used only if Glib >= 2.10
svn path=/trunk/; revision=35154
2010-12-08 08:26:40 +00:00
Anders Broman 6125184241 Reassemble.c leaks memory for GLIB > 2.8
Free fragment data and fragment keys in fragment_table when neccessary. reassembled_table remains to be fixed.

svn path=/trunk/; revision=35153
2010-12-08 06:32:04 +00:00
Jeff Morriss e17b9ccec1 Rev 29427 added packet_add_new_data_source() with a comment indicating that
the data source does not need to be allocated if (!tree).

Rev 30158 took the if (!tree) check out indicating that the check was invalid.

So: (since packet_add_new_data_source() now only calls add_new_data_source()),
remove packet_add_new_data_source().

svn path=/trunk/; revision=34717
2010-10-30 16:00:30 +00:00
Stig Bjørlykke 46749e843c Use the name from hf_fragment instead of hf_fragments when we only have
one fragment to reassemble.

svn path=/trunk/; revision=34285
2010-09-30 09:53:51 +00:00
Stig Bjørlykke 79ec447f8b Put the number of fragments/segments in front of the element to avoid
conflict when they are named fragments instead of segments and to avoid
duplicating the fragments/segments text.

svn path=/trunk/; revision=34074
2010-09-07 20:40:39 +00:00
Stig Bjørlykke 1af02462fd From Yaniv Kaul via bug 4550:
Show number of segments which were used in the desgementation.

svn path=/trunk/; revision=34072
2010-09-07 14:06:43 +00:00
Jeff Morriss 64f5d56bba Fix reassemble_test's (copy of the) proto_tree_add_item() prototype to get it
compiling again.

fragment_add_seq_check(), fragment_add_seq_802_11(), and fragment_add_seq_next()
all call fragment_add_seq_check_work() so make their prototypes match each other
in const-ness.  This fixes a warning when compiling reassemble_test.

svn path=/trunk/; revision=32933
2010-05-24 15:13:02 +00:00
Bill Meier 6812b68eb1 From Yaniv Kaul: constify parameters
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422

 From me: Fix a number of instances where the function prototype or
  the function definition wasn't changed so there was a mismatch 
  thus causing Windows (but not gcc) compilation errors.

svn path=/trunk/; revision=32365
2010-04-03 18:18:50 +00:00
Bill Meier d32b4c0758 Revert SVN #32360 until Windows compilation errors corrected.
svn path=/trunk/; revision=32361
2010-04-02 15:18:03 +00:00
Bill Meier 049f9eac85 From Yaniv Kaul: constify parameters
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422

svn path=/trunk/; revision=32360
2010-04-02 14:37:49 +00:00
Stig Bjørlykke 88b72356ad Introduce "Reassembled length" filter element for all protocols doing
reassembly.

svn path=/trunk/; revision=31767
2010-02-02 16:01:52 +00:00
Gerald Combs 830ee22db4 Set a mem_chunk to NULL after we destroy it. This should fix the Solaris
buildbot test failures.

svn path=/trunk/; revision=30639
2009-10-20 15:43:40 +00:00
Jeff Morriss 8f8eb40e9b Make it actually work with glib < 2.10
svn path=/trunk/; revision=30621
2009-10-19 14:52:15 +00:00
Stig Bjørlykke f0cada596a Make it build on glib < 2.10.
svn path=/trunk/; revision=30607
2009-10-18 21:27:50 +00:00
Jeff Morriss ea7d2deaeb dcerpc_fragment_key_copy(): don't se_alloc() the key:
- it contains pointers to a couple malloc()'d addresses
	- it is inserted in the fragment table (the contents of which are
	  g_free()'d in free_all_fragments())

Instead, do like fragment_key_copy() and use a g_slice or g_chunk, depending
on the glib version.

svn path=/trunk/; revision=30599
2009-10-18 19:46:46 +00:00
Kovarththanan Rajaratnam 0e5cef61be Split a bunch of init routines into init() and cleanup(). This allows us to free memory properly on shutdown.
This is an initial step. There's still some work to do.

svn path=/trunk/; revision=29754
2009-09-06 18:25:23 +00:00
Kovarththanan Rajaratnam 8b515e9340 Switch a bunch of dissectors over to using tvb_new_subset_remaining()
svn path=/trunk/; revision=29446
2009-08-16 12:36:22 +00:00
Kovarththanan Rajaratnam 7cb17ecec0 Use the slice allocator if GLIB >= 2,10,0
svn path=/trunk/; revision=29440
2009-08-16 04:54:33 +00:00
Kovarththanan Rajaratnam 7d44262406 This patch introduces packet_add_new_data_source() which effectively deprecates add_new_data_source(). This is based on the following observation:
1) The tvb + name (aka. data_source) is only used when the protocol tree is visible

The current implementation of add_new_data_source() doesn't take this into account and simply allocates a data_source regardless. This is what packet_add_new_data_source() tries to rectify.

A couple of dissectors have already been switched over to the new packet_add_new_data_source(). Many are still missing. Help appreciated!

svn path=/trunk/; revision=29427
2009-08-15 06:38:10 +00:00
Kovarththanan Rajaratnam 8fd6301ddc White space changes
svn path=/trunk/; revision=29397
2009-08-12 19:32:54 +00:00
Bill Meier 5aef94e6eb reassemble.h: update two comments; reassemble.c: correct a typo.
svn path=/trunk/; revision=29205
2009-07-27 13:59:53 +00:00
Gerald Combs 75e048491a Check for an overflow. This should hopefully fix bug 3672.
svn path=/trunk/; revision=29128
2009-07-16 22:25:06 +00:00
Stig Bjørlykke 62f60df6b4 From Jakub Zawadzki (bug 3331):
g_free() is NULL safe, so we don't need check against it.

svn path=/trunk/; revision=27718
2009-03-13 22:06:48 +00:00
Bill Meier fd245e378f Reword comment a bit ...
svn path=/trunk/; revision=25345
2008-05-21 18:08:43 +00:00
Bill Meier bf018e2a96 Fix for bug #2470; (don't memcmp past end of g_malloc'd buffer).
svn path=/trunk/; revision=25343
2008-05-21 16:53:07 +00:00
Bill Meier 6ae1343094 Fix a few typos ....
svn path=/trunk/; revision=25253
2008-05-07 17:57:45 +00:00
Anders Broman 03c7a3c920 Apply yet another set of the optimization patches:
Use O(1) logic for the fast path when adding fragments (ie fragments are in order).

svn path=/trunk/; revision=23422
2007-11-10 16:08:14 +00:00
Stig Bjørlykke c6ba6d714d Added fragment_start_seq_check to start a reassembly without adding any data.
svn path=/trunk/; revision=22513
2007-08-15 22:24:05 +00:00
Graeme Lunt 2033b06cda Added a new function, fragment_end_seq_next(), to end the
fragmented data without adding an empty data fragment. 
This is used by the RTSE dissector which can't identify the 
last fragment until after it has been added.


svn path=/trunk/; revision=22174
2007-06-24 05:14:39 +00:00
Stephen Fisher 46b8669566 Fix a bunch more warnings. Add -Werror when using --with-warnings-as-errors
under gcc to tools/lemon, plugins/mate and epan/


svn path=/trunk/; revision=21204
2007-03-26 06:10:52 +00:00
Anders Broman e2cab6caa9 From Richard van der Hoff:
01_reassemble_test.patch
------------------------
I didn't want to do anything without some unit tests, so here they are. 
This allows a standalone binary, epan/reassemble_test, to be built; this can be run from the commandline and should end up printing out "success" 
if all goes well.
NOTE the changes to makefile.am NOT checked in currently.

Incidentally: is it possible to get the buildbot to run things like this, exntest and tvbtest?

02_reassemble_refactor.patch
----------------------------
fragment_add_seq, fragment_add_dcerpc_dg and fragment_add_seq_check_work were all pretty much carbon-copies of each other. This patch factors out the common parts of the routines into a new routine, fragment_add_seq_key().

03_reassemble_partial_reassembly.patch
---------------------------------------
This makes fragment_set_partial_reassembly() work for datagrams assembled with fragment_add_seq(). The patch itself is actually quite small, but it adds another unit test which is reasonably lengthy.

svn path=/trunk/; revision=20888
2007-02-21 06:19:03 +00:00
Jeff Morriss 0787b688cc Squelch a few unused parameter warnings.
svn path=/trunk/; revision=20863
2007-02-19 15:30:06 +00:00
Jeff Morriss 1a9420702e Fix the SCCP dissector so it doesn't show non-segmented DT1 messages as
having been reassembled.

Fix the comments in reassembly.c and reassembly.h regarding what the reassembly
routines actually return in the 802.11 and no-sequence-number cases when they
are given the first and last packet (that is, a non-segmented packet): in
particular the routines return a pointer to a list containing just the one
fragment.

svn path=/trunk/; revision=20505
2007-01-19 23:27:24 +00:00
Guy Harris b343fcddd9 Fix pluralization of "bytes" so it doesn't say "1 bytes".
Clean up indentation.

svn path=/trunk/; revision=19953
2006-11-21 21:49:58 +00:00
Ronnie Sahlberg 89f022b12b name change
svn path=/trunk/; revision=18197
2006-05-21 05:12:17 +00:00
Ulf Lamping 17afca625c simply use DISSECTOR_ASSERT() to detect tvb problems instead of my previous commit
svn path=/trunk/; revision=17074
2006-01-22 19:31:42 +00:00
Ulf Lamping 4843257596 add fragment_get_reassembled_id so the handed id doesn't need to be a packet number (experimental)
add a check to fragment_add_common() if the given tvb parameters are ok, otherwise throw a DissectorError

add some more symbols to libethereal.def

svn path=/trunk/; revision=17073
2006-01-22 16:47:16 +00:00
Jaap Keuter 815a4af69e Hi All,
Find attached a couple of changes for t38:
- Use the dissector to reassemble t30 frames
- Dissect t30 protocol
- Move the "Fax t38 analysis" to the "VoIP Calls". Now when selecting
"Statistics"->"Fax t38 analysis" option, there is a message that
redirect the user to use the "Voip calls" instead. We may keep this
option for one release, and then remove it ?
- Added in the "Voip calls" the ability to detect a t38 call if there
are not signaling associated with it. For example, when using "Decode
as.." to dissect t38 packets, it is possible to use the "Voip calls" to                                                      analyze that call.
- Display "SDP (t38)" in the "Voip calls graph" for SDP t38 sessions.

Regards
Alejandro Vaquero


svn path=/trunk/; revision=17033
2006-01-15 15:01:14 +00:00