Commit graph

86 commits

Author SHA1 Message Date
Anders Broman
a46de56e38 From beroset:
remove C++ incompatibilities 
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8416

(catch the one that almost slipped away)

svn path=/trunk/; revision=48404
2013-03-18 22:16:58 +00:00
Guy Harris
6b629c4d92 Move show_exception() and show_reported_bounds_error() to
epan/show_exception.c, as it's used outside
epan/dissectors/packet-frame.c.  Update their callers to include
<epan/show_exception.h> to get their declaration.

Add a CATCH_NONFATAL_ERRORS macro that catches all exceptions that, if
there's more stuff in the packet to dissect after the dissector call
that threw the exception, doesn't mean you shouldn't go ahead and
dissect that stuff.  Use it in all those cases, including ones where
BoundsError was inappropriately being caught (you want those passed up
to the top level, so that the packet is reported as having been cut
short in the capture process).

Add a CATCH_BOUNDS_ERRORS macro that catches all exceptions that
correspond to running past the end of the data for a tvbuff; use it
rather than explicitly catching those exceptions individually, and
rather than just catching all exceptions (the only place that
DissectorError should be caught, for example, is at the top level, so
dissector bugs show up in the protocol tree).

Don't catch and then immediately rethrow exceptions without doing
anything else; just let the exceptions go up to the final catcher.

Use show_exception() to report non-fatal errors, rather than doing it
yourself.
 
If a dissector is called from Lua, catch all non-fatal errors and use
show_exception() to report them rather than catching only
ReportedBoundsError and adding a proto_malformed item.

Don't catch exceptions when constructing a trailer tvbuff in
packet-ieee8023.c - just construct it after the payload has been
dissected, and let whatever exceptions that throws be handled at the top
level.

Avoid some TRY/CATCH/ENDTRY cases by using checks such as
tvb_bytes_exist() before even looking in the tvbuff.

svn path=/trunk/; revision=47924
2013-02-27 22:43:54 +00:00
Martin Kaiser
38a73a32f3 include the wsutil/wsgcrypt.h instead of including gcrypt.h directly
svn path=/trunk/; revision=47802
2013-02-21 18:23:29 +00:00
Jaap Keuter
d2dcf56c94 From Sascha Herrmann:
Patch registering ieee802154 dissector to Linux SLL frames.

svn path=/trunk/; revision=47649
2013-02-13 07:16:14 +00:00
Bill Meier
329f6e8cc0 Initialize some hf_... vars to -1;
(Reduces the number of checkhf false positives)

svn path=/trunk/; revision=47310
2013-01-26 21:42:36 +00:00
Guy Harris
8ed7a73e22 Fix a bunch of warnings.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.

Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().

Change some data types to avoid those implicit conversion warnings.

When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.

Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers.  Cast
away those warnings in some cases where an API we don't control forces
us to do so.

Enable a bunch of additional warnings by default.  Note why at least
some of the other warnings aren't enabled.

randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.

If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.

svn path=/trunk/; revision=46748
2012-12-26 05:57:06 +00:00
Jeff Morriss
49466f95bc Introduce, and start using, TVB_SET_ADDRESS() and TVB_SET_ADDRESS_HF(). They
are like the non-TVB versions except that they take a TVB and an offset
instead of (frequently) a pointer into the TVB.

Calling tvb_get_ptr() before modifying the rest of the fields should help fix
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7960 (though I can't
reproduce that problem).


Replace a bunch of calls like:

SET_ADDRESS(..., AT_XXX, length, tvb_get_ptr(tvb, offset, length));

with:

TVB_SET_ADDRESS(..., AT_XXX, tvb, offset, length);

svn path=/trunk/; revision=46324
2012-12-02 04:49:13 +00:00
Jeff Morriss
0266cceef3 Make all enum_val_t's const.
svn path=/trunk/; revision=46292
2012-11-29 20:15:37 +00:00
Guy Harris
7c76ad78d3 Add an AT_ value for 802.15.4 short addresses.
Note that, if you want EUI-64's to resolve the OUI in the display,
hacking individual dissectors to do it themselves and use AT_STRINGZ is
*not* the right way to do it.

svn path=/trunk/; revision=45743
2012-10-23 21:19:02 +00:00
Jakub Zawadzki
0bf9560cb0 Fix bug #7892: Buildbot crash output: fuzz-2012-10-21-27120.pcap
Memory for address->data store in pinfo can no longer be ep_ allocated.

svn path=/trunk/; revision=45718
2012-10-22 17:59:22 +00:00
Anders Broman
606542f4e7 From Rakesh Kumar:
Error in AUXILIARY SECURITY HEADER Parsing for 802.15.4 in dissect_ieee802154_common function.
Offset should be +8 not +4

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

svn path=/trunk/; revision=45559
2012-10-15 15:59:47 +00:00
Jeff Morriss
2552c750e5 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45017
2012-09-20 02:03:38 +00:00
Jakub Zawadzki
dee4443809 Add data parameter to dissector_try_heuristic
svn path=/trunk/; revision=44871
2012-09-11 08:26:48 +00:00
Anders Broman
e128334750 From Owen Kirby:
6LoWPAN: Automatic context detection and draft-ietf-6lowpan-nd-19 updates.

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

svn path=/trunk/; revision=44723
2012-09-01 11:54:16 +00:00
Bill Meier
638d74d43f Use val_to_str_const() where appropriate;
Also (for a few files):
- create/use some extended value strings;
- remove unneeded #include files;
- remove unneeded variable initialization;
- re-order fcns slightly so prefs_reg_handoff...() at end, etc

svn path=/trunk/; revision=44438
2012-08-10 22:55:02 +00:00
Guy Harris
659cf0527a UATs could be put into "categories". The categories were defined only
implicitly by the #define name and string they were defined to; not all
UATs neatly fit into any of the categories, so some of them were put
into categories that weren't obviously correct for them, and one - the
display filter macro UAT - wasn't put into any category at all (which
caused crashes when editing them, as the GUI code that handled UAT
changes from a dialog assumed the category field was non-null).

The category was, in practice, used only to decide, in the
aforementioned GUI code, whether the packet summary pane needed to be
updated or not.  It also offered no option of "don't update the packet
summary pane *and* don't redissect anything", which is what would be
appropriate for the display filter macro UAT.

Replace the category with a set of fields indicating what the UAT
affects; we currently offer "dissection", which applies to most UATs
(any UAT in libwireshark presumably affects dissection at a minimum) and
"the set of named fields that exist".  Changing any UAT that affects
dissection requires a redissection; changing any UAT that affects the
set of named fields that exist requires a redissection *and* rebuilding
the packet summary pane.

Perhaps we also need "filtering", so that if you change a display filter
macro, we re-filter, in case the display is currently filtered with a
display filter that uses a macro that changed.

svn path=/trunk/; revision=43603
2012-07-08 01:00:46 +00:00
Jakub Zawadzki
bf81b42e1e Update Free Software Foundation address.
(COPYING will be updated in next commit)

svn path=/trunk/; revision=43536
2012-06-28 22:56:06 +00:00
Bill Meier
d12d5a606c AFAICT sys/types.h & netinet/in.h #includes are not needed for these files.
(Let's see if any of the buildbots give any errors).
Also: remove trailing whitespace on lines.

svn path=/trunk/; revision=42429
2012-05-04 21:29:00 +00:00
Bill Meier
198c9ba55f FT_BOOLEAN hf[] entries with a 0 'bitmask' should have 'display' = BASE_NONE;
In some cases:
 Use val_to_str_const() instead of val_to_str();
 Reformat long lines;
 Do some general whitespace changes.


svn path=/trunk/; revision=41587
2012-03-16 02:00:29 +00:00
Bill Meier
87cf82e056 Use tvb_new_subset_remaining() rather than tvb_new_subset();
#include <styring.h> not req'd (in a few cases);
Minor reformating & whitespace cleanup.

svn path=/trunk/; revision=41374
2012-03-06 16:58:09 +00:00
Alexis La Goutte
dfb7f8dd19 Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=40994
2012-02-12 18:05:02 +00:00
Anders Broman
e1a7ad65d3 From Colin O'Flynn:
Fix name of wpan (IEEE 802.15.4) fields to be more consistent, add in generic wpan.length field.

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

svn path=/trunk/; revision=40838
2012-02-04 13:43:58 +00:00
Bill Meier
44c3525d14 Fix memory leak.
svn path=/trunk/; revision=40190
2011-12-13 23:16:13 +00:00
Bill Meier
4a976f1be7 Use tvb_new_child_real_data() instead of tvb_new_real_data() + tvb_set_child_real_data_tvbuff().
svn path=/trunk/; revision=40173
2011-12-13 04:01:33 +00:00
Bill Meier
7ff8d2e622 Add missing '*/' to the end of a comment: Fixes gcc compile error.
svn path=/trunk/; revision=40005
2011-11-25 22:08:25 +00:00
Bill Meier
78af0d3f86 From Ivan Lawrow: Added IEEE 802.15.4-2003 AES-CCM security modes
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4912

svn path=/trunk/; revision=40004
2011-11-25 22:02:25 +00:00
Jeff Morriss
f5e838b602 Remove comma at the end of several enumerator lists.
svn path=/trunk/; revision=39700
2011-11-01 01:23:10 +00:00
Stig Bjørlykke
5359494b1f Second try to move crc routines to libwsutil.
This time keep the tvb routines in epan.

Now we can use common crc routines outside epan.

svn path=/trunk/; revision=38810
2011-08-31 09:00:54 +00:00
Stig Bjørlykke
71f903b956 Revert r38800, as the crc routines contains some tvb functions.
svn path=/trunk/; revision=38803
2011-08-30 14:17:40 +00:00
Stig Bjørlykke
4132d40e50 Move all crc routines to libwsutil.
This way we can use the crc routines in wiretap.

svn path=/trunk/; revision=38800
2011-08-30 13:46:42 +00:00
Bill Meier
b708c2892b Dissectors don't need to #include <gmodule.h>
Also: #include <stdlib.h> not req'd in some cases.

svn path=/trunk/; revision=38409
2011-08-08 15:41:09 +00:00
Stig Bjørlykke
2e74f2f582 Added a cast from ieee802154_long_addr.addr (guint64) to guint.
svn path=/trunk/; revision=37691
2011-06-17 11:56:56 +00:00
Alexis La Goutte
7d317e553b Add FT_EUI64 Field Type
* Remove proto_tree_add_eui64 function from 802.15.4 Dissector 
* Replace print_eui64/print_eui64 by eui64_to_str/get_eui64_name
* Update Documentation (README.dev)
* Add new function in libwireshark.def
* Support of encoding for tvb_eui64_to_str
* Use FT_EUI64 for ICMPv6, CAPWAP, Zbee ... dissector

svn path=/trunk/; revision=37015
2011-05-08 10:23:53 +00:00
Guy Harris
602b0747ce Stuff that comes back from ep_alloc() is properly aligned for all uses;
that's why it returns "void *", not "guint8 *".  Don't pointer-convert
that information away; otherwise, compilers might whine at you about
unsafe casts.

svn path=/trunk/; revision=36793
2011-04-22 03:34:39 +00:00
Gerald Combs
46865581e5 Fix Visual C++ code analysis warnings.
svn path=/trunk/; revision=36007
2011-02-19 00:05:12 +00:00
Jaap Keuter
133cbe7581 From Ivan Lawrow:
The Final CAP Slot field "wpan.cap" in the Superframe Specification for a
beacon is always displayed as zero.

svn path=/trunk/; revision=35999
2011-02-18 08:02:53 +00:00
Guy Harris
fd941f3906 Don't look at any of the fields that come from the Auxiliary Security
Header unless there *is* an Auxiliary Security Header.

svn path=/trunk/; revision=35878
2011-02-08 06:55:53 +00:00
Guy Harris
a8bc4a0d13 Rename the routines that handle dissector tables with unsigned integer
keys to have _uint in their names, to match the routines that handle
dissector tables with string keys.  (Using _port can confuse people into
thinking they're intended solely for use with TCP/UDP/etc. ports when,
in fact, they work better for things such as Ethernet types, where the
binding of particular values to particular protocols are a lot
stronger.)

svn path=/trunk/; revision=35224
2010-12-20 05:35:29 +00:00
Jeff Morriss
313785c513 From Fred Fierling via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5395 :
The ZigBee security dissector was not recording the short to long address
mappings in Security Headers, preventing the decryption of some payloads. This
patch eliminates the Undecoded warnings in packets 1 and 19 in this test
capture: https://bugs.wireshark.org/bugzilla/attachment.cgi?id=5457

The keys to decrypt these packets are listed in the bug.

svn path=/trunk/; revision=34886
2010-11-15 20:52:41 +00:00
Jaap Keuter
605db4842d From Colin O'Flynn:
Add a missing NULL pointer check.

svn path=/trunk/; revision=34761
2010-11-03 17:52:11 +00:00
Guy Harris
0f96301a3e You may not use g_int64_hash() or g_int64_equal(), as they are not
present in the minimum version of GLib that we support.  Create a
ieee802154_long_addr structure for long addresses, create hash
routines for those addresses, and use them.

svn path=/trunk/; revision=34651
2010-10-26 08:31:16 +00:00
Anders Broman
30d27cfb05 g_int64_hash is first available in Glib 2.22
(This needs a proper fixr)
This is just to get the build going again.

svn path=/trunk/; revision=34649
2010-10-26 06:48:09 +00:00
Anders Broman
26f0f7bc7a From Fred Fierling:
Multi-key Support and Extended Address Mapping for ZigBee Dissectors
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5331

svn path=/trunk/; revision=34647
2010-10-26 05:42:24 +00:00
Anders Broman
b1e852cf70 Back out 34627 and friends again.
svn path=/trunk/; revision=34633
2010-10-24 15:22:44 +00:00
Anders Broman
bfcc79bd23 error: ‘ieee802154_short_addr_invalidate’ declared ‘static’ but never defined
error: ‘ieee802154_long_addr_invalidate’ declared ‘static’ but never defined

svn path=/trunk/; revision=34629
2010-10-24 14:02:31 +00:00
Anders Broman
43cb273d08 From Fred Fierling:
Multi-key Support and Extended Address Mapping for ZigBee Dissectors
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5331

svn path=/trunk/; revision=34627
2010-10-24 10:04:29 +00:00
Jeff Morriss
cca3ba3ce2 (Refining the regexp...) Replace blurbs that match the name (case insensitive) with NULL.
svn path=/trunk/; revision=34230
2010-09-24 02:51:40 +00:00
Guy Harris
11b9ed0426 Define WTAP_ENCAP_IEEE802_15_4_NOFCS, for use in file formats that don't
include the FCS, and use it for the Daintree SNA file format.  While
we're at it, explicitly check to make sure the purported packet length
gives it at least one byte of packet data, and fix some print formats to
use %u for unsigned values.

svn path=/trunk/; revision=33678
2010-07-30 02:30:50 +00:00
Guy Harris
45afe26346 Squelch some compiler complaints.
svn path=/trunk/; revision=32572
2010-04-27 07:41:28 +00:00
Anders Broman
d8ea0a5fb4 Remove C++ style comments in packet-ieee802154.c
svn path=/trunk/; revision=32167
2010-03-11 09:19:29 +00:00