Commit Graph

1854 Commits

Author SHA1 Message Date
Chris Maynard 862b30c07a Take a preemptive strike at some likely future VS Code Analyzer warnings about strings possibly not being zero-terminated.
svn path=/trunk/; revision=54098
2013-12-14 17:00:36 +00:00
Bill Meier b4acad6f0f Prevent VS Code Analyzer warning; (AFAICT: not an actual bug).
svn path=/trunk/; revision=54096
2013-12-14 16:36:07 +00:00
Jakub Zawadzki 1053e722ed Fix warnings
svn path=/trunk/; revision=54089
2013-12-14 12:45:57 +00:00
Jakub Zawadzki 4d92f6079b Remove not needed ';'
svn path=/trunk/; revision=54088
2013-12-14 11:12:20 +00:00
Chris Maynard 97964f3ebd Fix Visual Studio Code Analysis warning C6054: String 'szStr' might not be zero-terminated
svn path=/trunk/; revision=54049
2013-12-13 17:13:33 +00:00
Chris Maynard 69dbd3fb24 Reject the packet if info is NULL under conditions where it'll be used.
svn path=/trunk/; revision=53969
2013-12-12 19:38:20 +00:00
Jakub Zawadzki 65db82872c When including <epan/prefs.h> don't force inclusion of <epan/uat.h>
svn path=/trunk/; revision=53769
2013-12-03 22:16:49 +00:00
Michael Mann 60d6b05e23 Stats_tree enhancements for sorting, averages and burst rate. Bug 9452 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9452)
From Deon van der Westhuysen

- Bug fix: object leak in stats_tree after a tap reset (for example apply statistics preferences with a stats_tree window open)
- Bug fix: correct sample code in README.stats_tree
- Add: slash in plug-in name now creates submenu as docs describe (was a bug?)
- Add: menu separator before the stat_tree registered plug-ins
- Add: stats_tree can now calculate averages for nodes; automatically calculated for range nodes. Add section in README.stats_tree describing averages.
- Add: stats_tree can now calculate burst rate of each node (like rate but with a shorter, sliding time window)
- Add: sorting for stats_tree plug-ins. Can sort on node name, count, average, min, max values and burst rate.
- Add: preferences for stats_tree system (default sort column, burst calc params)
- Add: stats_tree window copy to clipboard and export and plain text, csv and XML.
- Added sample of new functionality in $srcdir/plugins/stats_tree/pinfo_stats_tree.c
- Moved all stats_tree sample plug-ins to "IP Statistics" submenu.

svn path=/trunk/; revision=53657
2013-11-29 22:47:59 +00:00
Jakub Zawadzki 82e2675f45 Avoid including <wiretap/wtap.h> in dissectors.
svn path=/trunk/; revision=53655
2013-11-29 20:53:00 +00:00
Jakub Zawadzki 5ac6474c94 Rename some of pint.h macros to match common style (bits number on the end).
pntohs  -> pntoh16
   pntohl  -> pntoh32
   pletohs -> pletoh16
   pletohl -> pletoh32
   phtons  -> phton16
   phtonl  -> phton32


svn path=/trunk/; revision=53652
2013-11-29 18:59:06 +00:00
Michael Mann 9b7fb8a811 Create the ability to have packet scoped "proto" data. Bug 9470 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9470)
I'm not sold on the name or module the proto_data functions live in, but I believe the function arguments are solid and gives us the most flexibility for the future.  And search/replace of a function name is easy enough to do.

The big driving force for getting this in sooner rather than later is the saved memory on ethernet packets (and IP packets soon), that used to have file_scope() proto data when all it needed was packet_scope() data (technically packet_info->pool scoped), strictly for Decode As.

All dissectors that use p_add_proto_data() only for Decode As functionality have been converted to using packet_scope().  All other dissectors were converted to using file_scope() which was the original scope for "proto" data.

svn path=/trunk/; revision=53520
2013-11-23 02:20:13 +00:00
Michael Mann 9ba190f2a5 Create multiple dissection functions if packet_info->ipproto is used to distinguish behavior.
svn path=/trunk/; revision=53504
2013-11-22 02:52:41 +00:00
Michael Mann f4360dc48c Create separate dissector function for TCP functionality so packet_info->ethertype doesn't need to be used.
svn path=/trunk/; revision=53478
2013-11-21 17:18:11 +00:00
Anders Broman 864431b900 Fix [-Wmissing-prototypes]
svn path=/trunk/; revision=53425
2013-11-19 06:06:38 +00:00
Anders Broman 202a03b398 Fix [-Wmissing-prototypes]
svn path=/trunk/; revision=53404
2013-11-18 06:22:09 +00:00
Guy Harris eee9b9ddd3 Move get_tempfile_path() from filesystem.[ch] to tempfile.[ch].
svn path=/trunk/; revision=53379
2013-11-17 04:39:44 +00:00
Guy Harris db25270df8 Move the epan/filesystem.c routines to wsutil; they're not specific to
packet dissection, they're specific to the entire Wireshark suite of
programs.

svn path=/trunk/; revision=53377
2013-11-17 02:55:14 +00:00
Anders Broman 171f91db2b Try to fix [-Wmissing-prototypes]
svn path=/trunk/; revision=53337
2013-11-15 06:32:11 +00:00
Guy Harris 6461057a52 Now that fvalue_to_string_repr() returns NULL if the fvalue's ftype has
no val_to_string_repr method, we don't need to check whether it has such
a method, and thus don't need to include epan/ftypes/ftypes-int.h.

svn path=/trunk/; revision=53293
2013-11-12 22:22:23 +00:00
Jakub Zawadzki ae59b09443 Add missing includes in order to remove exceptions.h from proto.h (next commit).
svn path=/trunk/; revision=53230
2013-11-10 15:59:37 +00:00
Jakub Zawadzki 12d1509aa1 Move struct _ftype_t + callback typedefs + free macro to ftypes-int.h
svn path=/trunk/; revision=53223
2013-11-10 13:14:09 +00:00
Michael Mann 8081cf1d90 Add data parameter to tcp_dissect_pdus() as well as convert it to using "new" style dissectors.
Now that "bytes consumed" can be determined, should tcp_dissect_pdus() take advantage of that?

Should tcp_dissect_pdus return length (bytes consumed)?  There are many dissectors that just call tcp_dissect_pdus() then return tvb_length(tvb).  Seems like that could all be rolled into one.

svn path=/trunk/; revision=53198
2013-11-09 17:46:28 +00:00
Jakub Zawadzki c9b2ee3768 include <wsutil/pint.h> only when needed.
svn path=/trunk/; revision=53196
2013-11-09 15:44:29 +00:00
Jakub Zawadzki 1899903f69 Include <epan/to_str.h> only when needed.
svn path=/trunk/; revision=53189
2013-11-09 13:41:10 +00:00
Michael Mann 22760b2d2a Remove pinfo->private_data from DCERPC dissectors and instead have dcerpc_info* infomation be passed in as a function parameter. Bug 9387 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9387)
All "generated" source was manually modified (with the power of search/replace), but I believe the "source input" files have been adjusted (checked into revs 53098 and 53099) to reflect the necessary changes (with possible whitespace formatting differences).

The Microsoft compiler doesn't flag "unused function parameters", so I apologize in advance if I may have missed a few.  The "dcerpc_info* di" parameter is used in almost every function.

svn path=/trunk/; revision=53100
2013-11-06 14:31:29 +00:00
Michael Mann 7c33631d69 Remove setting of pinfo->private_data to ETHERCAT_MBOX_HEADER structure as it's not used anywhere in the Wireshark source.
If it's used by a third-party plugin, please submit a patch that passes the ETHERCAT_MBOX_HEADER structure through the data parameter of the "new" style dissector function.

svn path=/trunk/; revision=53094
2013-11-05 20:00:57 +00:00
Michael Mann f8f1f48371 Pass struct tcpinfo into all TCP subdissectors instead of through pinfo->private_data.
svn path=/trunk/; revision=53036
2013-11-02 00:36:30 +00:00
Bill Meier 0ad98563a2 From didier gautheron: remove redundant or use faster col_xxx functions
- when the text parameter is constant col_add_str() and col_set_str() are equivalent but col_set_str() is faster.
- same for  replace col_append_fstr and col_append_str
- remove col_clear() when it's redundant:
    + before a col_set/col_add if the dissector can't throw an exception.
- replace col_append() after a col_clear() with faster col_add... or col_set

   https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9344


svn path=/trunk/; revision=52948
2013-10-29 14:09:20 +00:00
Evan Huus 95f484a91e Add a very small hack to make the UAT update callback error string freeable, and
convert all existing UAT update callbacks to use glib memory instead of
ephemeral memory for that string.

UAT code paths are entirely distinct from packet dissection, so using ephemeral
memory was the wrong choice, because there was no guarantees about when it would
be freed.

The move away from emem still needs to be propogated deeper into the UAT code
itself at some point.

Net effect: remove another bunch of emem calls from dissectors, where replacing
with wmem would have caused assertions.

svn path=/trunk/; revision=52854
2013-10-25 22:14:25 +00:00
Michael Mann 503e211281 Minor cleanup.
svn path=/trunk/; revision=52809
2013-10-24 00:32:52 +00:00
Michael Mann ffd7d714b3 Make WiMax CDMA Code Attribute its own protocol with it's own filter.
svn path=/trunk/; revision=52808
2013-10-24 00:30:14 +00:00
Michael Mann 5ca56e5bce Create a single array of ett_ variables, instead of individual etts + array of pointers.
Other minor cleanup.

svn path=/trunk/; revision=52807
2013-10-24 00:26:57 +00:00
Michael Mann 4cfd2f93ea Remove profinet_conv member of struct _packet_info and turn it into proto_data.
svn path=/trunk/; revision=52806
2013-10-24 00:17:58 +00:00
Bill Meier 8c220a6f7f Fix (using '#if 0') a few more [-Wunused-const-variable] warnings
svn path=/trunk/; revision=52799
2013-10-23 16:59:34 +00:00
Bill Meier aa67dd156e Fix (using '#if 0') various [-Wunused-const-variable] warnings
svn path=/trunk/; revision=52794
2013-10-23 15:53:31 +00:00
Michael Mann 2657071e88 Don't allow invalid ranges to be specified for the stats tree. Bug 9130 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9130)
Not sure which memory allocation should be used here (using wmem caused crash), but this revision can at least be easily backported to 1.10 where the bug was reported.

Also allow a single number to be used in the stats range since it's considered a valid "range" by the UAT.

svn path=/trunk/; revision=52679
2013-10-18 21:17:01 +00:00
Graham Bloice 9c4ee86784 Add CMake properties to targets so that they are logically organised when using a Visual Studio solution.
Add CMake properties to group the source files in epan into logical blocks when using a Visual Studio solution.

svn path=/trunk/; revision=52580
2013-10-13 09:21:55 +00:00
Alexis La Goutte 88c79b03d9 Fix Dead Store (Dead assignement/Dead increment) warning found by Clang
svn path=/trunk/; revision=52290
2013-09-30 09:03:41 +00:00
Alexis La Goutte 37762701c4 Fix Dead Store (Dead assignement/Dead increment) warning found by Clang
svn path=/trunk/; revision=52289
2013-09-30 09:03:28 +00:00
Alexis La Goutte bdd2350b2c Fix Dead Store (Dead assignement/Dead increment) warning found by Clang
svn path=/trunk/; revision=52288
2013-09-30 09:03:16 +00:00
Evan Huus ca52337c43 Fix various warnings in (hopefully) the right ways.
svn path=/trunk/; revision=52236
2013-09-28 02:41:49 +00:00
Michael Mann e5379de126 1. Remove PITEM_FINFO from add_tlv_subtree and add_protocol_subtree (as well as some other minor cleanup) and adjust the calling functions accordingly.
2. Converted several add_protocol_subtree calls to add_tlv_subtree to get true filterability.  Many of the add_protocol_subtree are effectively being (ab)used as proto_tree_add_text with different highlighting.

3. Convert tvb_new_subset into tvb_new_subset_length.

Still looks like some of the remaining "protocols" need more specific filters, and should just be regular FT_BYTES fields.

svn path=/trunk/; revision=52235
2013-09-28 00:45:44 +00:00
Michael Mann f92832c8f4 Prevent crashing as a result of tree removal in r52208. Tree removal + this patch should be the "quick" fix to bug 5349 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5349). I knew the tree check was preventing some dissection/column data/etc, but from the comments in bug 5349, the tree check was also protecting this (and maybe other) crashes (due to missed NULL checking).
I want to follow up with some massive cleanup (remove PITEM_FINFO calls), but this with r52208 should be good enough to backport to 1.8 and 1.10 to fix bug 5349.  Cleanup shouldn't need to be backported.

svn path=/trunk/; revision=52209
2013-09-24 21:06:05 +00:00
Guy Harris 9e24ed6e97 You are in a twisty little maze of code paths, all different. Get rid
of the if (tree) tests in dissect_mac_header_generic_decoder(), as some
of the stuff done inside there should be done even if we're not building
a protocol tree, e.g. CRC stuff and calling subdissectors.

Get rid of a gratuitous pair of curly braces, and fix the indentation of
one line, while we're at it.

svn path=/trunk/; revision=52208
2013-09-24 20:32:19 +00:00
Guy Harris 84ac86916b Stuff used when checking the CRC needs to be done regardless of whether
we're building a protocol tree or not.

svn path=/trunk/; revision=52207
2013-09-24 19:57:41 +00:00
Guy Harris ff7b1d8a65 Get rid of unused variable.
svn path=/trunk/; revision=52206
2013-09-24 19:56:56 +00:00
Guy Harris d08e9702c8 Fix copy-and-pasteo(?).
svn path=/trunk/; revision=52205
2013-09-24 19:09:10 +00:00
Guy Harris 36fd921839 One advantage of making as many things as possible static is that, if
they're not being used, the compiler can be made to warn about that.

In this case, Broadcast_Control_Pointer_IE() was used because of a
missing case in a switch statement; put that case in.

svn path=/trunk/; revision=52204
2013-09-24 19:07:22 +00:00
Michael Mann 1ac3997acb Wimax dissector improvements:
1. Remove message type field from all MAC Management "sub"dissectors and place it in Mac Management subdissector itself.  This may cause backwards-compatibility issues (malformed packets) with third-party subdissectors of the MAC Management dissector, but it didn't make sense to have so many filters for a single enumerated value, especially when the various "protocol" filters covers many of them.

2. Removed some if(tree) checks as column info and calling other dissectors are sometimes executed underneath.  Some of this is in preparation for addressing bug 5349.

3. Make all dissector functions (and a few others) static, and use register_dissector() when necessary.

4. Convert generic decoder CRC errors into expert info, rather than have it be a "protocol" filter (it just looks funny that way)


In general, these dissectors seem "over-protocolized". I understand the need for all of the dissectors, but I don't know if they all need "protocol" status.

svn path=/trunk/; revision=52203
2013-09-24 18:45:39 +00:00
Pascal Quantin 102c452bcb More emem -> wmem conversion:
- tvb_get_g_stringz()/tvb_get_ephemeral_stringz()/tvb_get_seasonal_stringz() -> tvb_get_stringz()
- tvb_get_g_stringz_enc()/tvb_get_ephemeral_stringz_enc() -> tvb_get_stringz_enc()
- tvb_get_ephemeral_unicode_stringz() -> tvb_get_unicode_stringz()
- tvb_bcd_dig_to_ep_str() -> tvb_bcd_dig_to_wmem_packet_str()
- update docs accordingly

svn path=/trunk/; revision=52180
2013-09-22 20:04:35 +00:00