Commit graph

95 commits

Author SHA1 Message Date
Anders Broman
b539916835 [-Wmissing-prototypes]
explicit casts.

svn path=/trunk/; revision=48293
2013-03-14 07:37:13 +00:00
Alexis La Goutte
1d74daaec3 Remove unused bgp_route_refresh struct
svn path=/trunk/; revision=48278
2013-03-13 15:02:17 +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
Alexis La Goutte
2e8cb1c5cd Enhance BGP ORF (Make field filterable)
svn path=/trunk/; revision=46508
2012-12-11 23:24:02 +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
Alexis La Goutte
7c59618e8d From Olivier Benghozi via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7734
Enhance Route Refresh Capability : Add draft-ietf-idr-bgp-enhanced-route-refresh-02

Not yet support new NOTIFICATION error code : ROUTE-REFRESH Message Error (Value To Be Defined)

From me :
* Make some Route Refresh fields filterable 

svn path=/trunk/; revision=45217
2012-09-30 10:38:37 +00:00
Alexis La Goutte
cd519e450c From Olivier Benghozi via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7734
BGP bad decoding for Graceful Restart Capability with only helper support

BGP Capability in OPEN message: Graceful restart capability (64).

So when the length of the capability value is smaller that 6 (6 meaning full
support of GR capa, with significants elements and at least one AFI/SAFI), the
code interprets it as erroneous.

However,as described in RFC4724: " When a sender of this capability does not
include any <AFI, SAFI> in the capability, it means that the sender is not
capable of preserving its forwarding state during BGP restart, but supports
procedures for the Receiving Speaker (as defined in Section 4.2 of this
document). In that case, the value of the Restart Time field advertised by the
sender is irrelevant".

So, length of exactly 2 is valid but has to be interpreted with a particular
meaning.

In the dissector code, a length of 2 should be a special case for this capa,
decoding as "Graceful Restart helper mode only" or something like that, and
maybe also displaying an expert message if the Restart flag is not 0 in this
case, since here it's not expected to be possible.

svn path=/trunk/; revision=45216
2012-09-30 10:05:18 +00:00
Michael Mann
65ef9e9d6b replaced decode_numeric_bitfield calls with filterable item or removed it if it didn't mathematically do anything.
svn path=/trunk/; revision=45166
2012-09-27 04:36:40 +00:00
Michael Mann
4f9707469d replaced decode_boolean_bitfield calls with itemized filters
added tfs_no_yes to tfs.[ch]

svn path=/trunk/; revision=45115
2012-09-25 01:00:41 +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
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
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
1b17369504 Fix: code under 'if(tree)' (in)directly calls sub-dissector/col_...()/expert...() fcns
svn path=/trunk/; revision=43226
2012-06-12 21:22:46 +00:00
pascal
7bbbb88068 From Thomas Loockx via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7269 :
Add BGP MDT-SAFI dissection (RFC6037)

svn path=/trunk/; revision=42713
2012-05-19 12:32:10 +00:00
Bill Meier
2ed4baea4f all:
Merge .h files into .c files since .h files unused elsewhere;
     Do whitespace, indentation & formatting cleanup.
packet-acn.c:
     Fix 2 minor bugs wherein subtree not displayed in packet-details
     because tree variable used in proto_tree_add_text() always NULL.

svn path=/trunk/; revision=42647
2012-05-16 01:41:03 +00:00
Alexis La Goutte
3fa9ea87ce Add RFC6608 Subcodes for BGP Finite State Machine Error
Update other notify subcodes (draft-ietf-idr-cease-subcode-02 => RFC4484)...

svn path=/trunk/; revision=42510
2012-05-08 17:31:05 +00:00
Alexis La Goutte
dbce54c4f3 Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=41049
2012-02-17 13:33:53 +00:00
Alexis La Goutte
a34db114cc Enhance BGP Notification message
* Make field filterable (3 proto_tree_add_text less ! but there are still 147 proto_tree_add_text...)
* Remove bgp_notify struct
* Use expert info to display a unknown error type

svn path=/trunk/; revision=40987
2012-02-12 17:41:57 +00:00
Chris Maynard
c2208aa172 Fix some duplicate display filter names.
svn path=/trunk/; revision=40586
2012-01-19 19:15:13 +00:00
Jaap Keuter
db1ea8f80d From astramax57:
After r38723, some BGP AS_PATH packets were no longer dissected.

svn path=/trunk/; revision=40130
2011-12-09 16:34:02 +00:00
Jaap Keuter
f0525ee415 From Michael Sakaluk:
This patch adds support to the BGP dissector for RFC 5512 and RFC 5640.

svn path=/trunk/; revision=40082
2011-12-03 13:35:06 +00:00
Alexis La Goutte
5fb574c69e Fix Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=39655
2011-10-28 17:44:01 +00:00
Jeff Morriss
bcd13b0d6f From Thomas Loockx via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6324 :
I've updated the bgp dissector code to support the mcast-vpn nlri. These nlri's
are used to implement multicast vpn (mvpn) and are fully described in
draft-ietf-l3vpn-2547bis-mcast-bgp-08.txt (section 4).

svn path=/trunk/; revision=39549
2011-10-25 00:51:58 +00:00
Bill Meier
794757ae8f For proto_tree_add_item(..., proto_xxx, ...)use ENC_NA as the encoding arg.
Also: remove trailing whitespace for a number of files.

svn path=/trunk/; revision=39503
2011-10-21 02:10:19 +00:00
Alexis La Goutte
097e9bb397 Enhance BGP Capability message
* Make field filterable 
* Use expert info to display a wrong length
* Remove duplicate code for type and length

svn path=/trunk/; revision=39446
2011-10-17 18:19:18 +00:00
Bill Meier
67ee5049d4 Convert 'encoding' parameter of certain proto_tree_add_item() calls in non-autogenerated epan/dissectors:
Specifically:  Replace FALSE|0 and TRUE|1 by ENC_BIG_ENDIAN|ENC_LITTLE_ENDIAN as
  the encoding parameter for proto_tree_add_item() calls which directly reference
  an item in hf[] which has a type of:
     FT_BOOLEAN
     FT_IPv4
     FT_EUI64
     FT_GUID
     FT_UINT_STRING

Also: For type FT_ITv6 use ENC_NA. (This was missed in SVN #39260)

svn path=/trunk/; revision=39328
2011-10-10 00:39:31 +00:00
Alexis La Goutte
10056d45c1 Enhance BGP Open message
* Make field filterable 
* Remove bgp_open struct
* Fix a bug of offset in Optionnel Parameter TLV (Bug include by me in Revision #39098)

svn path=/trunk/; revision=39321
2011-10-09 13:06:32 +00:00
Alexis La Goutte
fc823d7b6a Enhance BGP Header
* Remove a not needed subtree
* Make field filtereable
* Use expert info to display a wrong length

svn path=/trunk/; revision=39316
2011-10-08 18:12:59 +00:00
Bill Meier
4e57694d4a Convert 'encoding' parameter of certain proto_tree_add_item() calls in non-autogenerated epan/dissectors:
Specifically:  Replace FALSE|0 and TRUE|1 by ENC_BIG_ENDIAN|ENC_LITTLE_ENDIAN as
 the encoding parameter for proto_tree_add_item() calls which directly reference
 an item in hf[] which has a type of:
    FT_UINT8
    FT_UINT16
    FT_UINT24
    FT_UINT32
    FT_UINT64
    FT_INT8
    FT_INT16
    FT_INT24
    FT_INT32
    FT_INT64
    FT_FLOAT
    FT_DOUBLE


svn path=/trunk/; revision=39288
2011-10-06 03:35:44 +00:00
Bill Meier
94f36ca4ff Use ENC_NA as encoding for proto_tree_add_item() calls which directly reference an hf item (in hf[] with types:
FT_NONE
   FT_BYTES
   FT_IPV6
   FT_IPXNET
   FT_OID

Note: Encoding field set to ENC_NA only if the field was previously TRUE|FALSE|ENC_LITTLE_ENDIAN|ENC_BIG_ENDIAN

svn path=/trunk/; revision=39260
2011-10-04 22:44:31 +00:00
Alexis La Goutte
89b307973a Fix checkhf
* Remove hf_bgp_cluster_identifier never use ! (Add in Revision #7546)

svn path=/trunk/; revision=39195
2011-09-30 15:14:33 +00:00
Alexis La Goutte
50c6e8bb0f Enhance extended communities when RD Type 2
svn path=/trunk/; revision=39194
2011-09-30 15:08:52 +00:00
Alexis La Goutte
c22e483238 Fix a typo in RD offset
svn path=/trunk/; revision=39120
2011-09-24 13:36:51 +00:00
Alexis La Goutte
5d51177ad8 Convert "space tabs" to spaces
Add modeline information

svn path=/trunk/; revision=39099
2011-09-23 09:03:26 +00:00
Alexis La Goutte
93e7484c63 Fix Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=39098
2011-09-23 08:44:53 +00:00
Alexis La Goutte
d70a78c152 From https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6128 : Wireshark doesn't decode BGP.MP_REACH_NLRI.NLRI when RD type is 2(defined in RFC4364:4.2)
Fix a wrong offset of RD Type 2 and display AS4 in asdot+ notation (Add a pref to chose the type of display for AS4 ?)

svn path=/trunk/; revision=39097
2011-09-23 08:41:23 +00:00
Alexis La Goutte
154b424ed3 From Olivier Montanuy via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5458
BGP add-path (Additional Paths) support for IPv4 unicast

From me:
Fix some whitespace/tab...

svn path=/trunk/; revision=38724
2011-08-24 21:58:14 +00:00
Alexis La Goutte
11f1f1a019 From astramax57 via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6188
In some BGP captures the AS_PATH attribute was decode wrong, if the asn length determines automatically

From me:
Fix some whitespace...
Fix error: ‘for’ loop initial declarations are only allowed in C99 mode
Replace unsigned by guint

svn path=/trunk/; revision=38723
2011-08-24 21:37:37 +00:00
Alexis La Goutte
cd3e81d97c From Ryan Hoffman via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6122
Malformed Packet in decode for BGP-AD (autodiscovery) update (RFC6074)

From me:
Add support of RFC6074 (BGP-AD) in BGP dissector.
Both BGP-AD and VPLS-BGP (RFC4761) use the same AFI/SAFI, The NLRI length must be used as a demultiplexer. (See RFC6074  Section 7 : BGP-AD and VPLS-BGP Interoperability)

svn path=/trunk/; revision=38601
2011-08-18 13:43:24 +00:00
Alexis La Goutte
21e7a7a277 Enhance support of RD Type 2 (FORMAT_AS4_LOC) (RFC4364)
svn path=/trunk/; revision=38600
2011-08-18 12:51:30 +00:00
Alexis La Goutte
2c649f7b78 From Sergey V. Lobanov via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6128
Wireshark doesn't decode BGP.MP_REACH_NLRI.NLRI when RD type is 2(defined in
RFC4364:4.2)

From me:
 Add RD type 2 (FORMAT_AS4_LOC) (not tested... based only on RFC spec..)

svn path=/trunk/; revision=38589
2011-08-17 18:09:27 +00:00
Guy Harris
464778ed69 More misspellings of "unknown", for bug 6244.
svn path=/trunk/; revision=38565
2011-08-16 16:26:50 +00:00
Bill Meier
e777d9e375 From Yaniv Kaul:
Some fixes for 'set but not used' errors that GCC 4.6 emits.
From me:
  #include <stdlib.h> not req'd;
  Do some whitespace cleanup.

svn path=/trunk/; revision=36906
2011-04-27 17:15:57 +00:00
Bill Meier
7d8633af66 Don't assign to a proto_item* if the value won't be used: Coverity 852,854;
Add a hidden item to the correct subtree: Coverity 853.

svn path=/trunk/; revision=36334
2011-03-25 21:09:28 +00:00
Jeff Morriss
cc6fc23812 From Didier via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3055 :
Apply rev 25869 to most of the rest of the TCP-desegmenting dissectors.
(The SSL dissector was already updated in one of two spots with bug 4535/rev
32456.)

A couple of the patches had to be manually applied.

From me: Fix the comments to match the change (including in the TCP and SSL
dissectors.)

svn path=/trunk/; revision=36332
2011-03-25 19:02:18 +00:00
Anders Broman
ed66081a4d From Alexis La Goutte:
Cleanup packet-ipv6.h and dependency.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5713

svn path=/trunk/; revision=36031
2011-02-23 13:51:49 +00:00
Chris Maynard
e867b10b98 Properly define and dissect BGP_EXT_COM_LINKBAND. Fixes bug 4409 reported by
Max Ivanov.

svn path=/trunk/; revision=35260
2010-12-24 13:53:26 +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
33f116a46d Restore pinfo->private_data after an exception was thrown by a subdissector.
This is necessary in case a subdissector had changed it but was unable to
restore it (due to the exception).

Remove check_col().

svn path=/trunk/; revision=34436
2010-10-08 17:48:22 +00:00
Stig Bjørlykke
f4955fcae2 Avoid a possible dereference of null pointer.
svn path=/trunk/; revision=33708
2010-08-04 13:32:44 +00:00