Commit Graph

318 Commits

Author SHA1 Message Date
Michal Pazdera c711a63e48 Avoid duplicate SIP and Q.931 calls in VoIP Calls list in case of Q.931
transported over SIP as described in RFC 3204, 3.2 QSIG Media Type.

Change-Id: Ida30a7b115e60fa64d30cfc1f4b7c11be724f8ee
Reviewed-on: https://code.wireshark.org/review/9479
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-07-26 07:32:34 +00:00
Pascal Quantin 1ea256596f SIP: heuristic dissectors should use the captured length, not the reported one
Otherwise it triggers a "packet size limited during capture" exception
preventing following heuristic dissectors to be called

Change-Id: Ifc97e84b4e40a1c7dc0b0c63b7b9e015bd99d178
Reviewed-on: https://code.wireshark.org/review/9774
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-07-24 19:40:02 +00:00
Michael Mann 21e5a950ad Remove all preferences related to enabling/disabling heuristic dissectors.
The preferences are still supported for backwards compatibility, but the heuristic_protos file has final say on the "preference" to enable/disable a heuristic dissector.

Also add parameter to heur_dissector_add() for the "default" enable/disable of a heuristic dissector. With this parameter, a few more (presumably weak) heuristic dissectors have been "registered" but of course default to being disabled.

Change-Id: I51bebb2146ef3fbb8418d4f5c7f2cb2b58003a22
Reviewed-on: https://code.wireshark.org/review/9610
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Roland Knall <rknall@gmail.com>
Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-07-17 17:12:22 +00:00
Michael Mann be7d295fbf Add "user presentable" and "unique string ids" to heuristic table entries.
This allows better presentation of heuristic dissectors to the end user.

Change-Id: I2ff3985ab914e83c2989880cc0c7b9904045b3f6
Reviewed-on: https://code.wireshark.org/review/9602
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-07-12 03:14:38 +00:00
Peter Wu ba9aa3015f Split more init routines into init/cleanup functions
This patch is partially automatically generated, but are modified
manually. In particular, assignments and function calls have been
audited.

Some debugging comments and ifdef'd prints have been removed. The
lookup tables of the dcm and sip dissectors are now cleared. It is only
called on reopening files anyway.

The isakmp dissector is modified to use g_hash_table_new_full for
destruction of its keys and values.

Fix a memleak in ipsec dissector when libgcrypt is not enabled.

Generated using
https://git.lekensteyn.nl/peter/wireshark-notes/diff/one-off/cleanup-rewrite.py?id=3c6128ee266024d164650955f93c7740484abd68
(with AUDIT = True).

Change-Id: I3fd910bdee663842ac0196334fe0189b67e251b0
Reviewed-on: https://code.wireshark.org/review/9225
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-07-03 23:37:40 +00:00
Pascal Quantin cdc7d25004 Add ability to export PDUs for heuristic dissectors also
Change-Id: I1bf1aa9794f9b4f106edffd4986fc0b1014522fa
Reviewed-on: https://code.wireshark.org/review/9099
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-06-25 00:10:13 +00:00
Pascal Quantin a7f5e1805b SIP: add support for draft-ietf-insipid-session-id
Bug: 11294
Change-Id: I54f7e19d129cddb1f11525f6ee9931270cc41f40
Reviewed-on: https://code.wireshark.org/review/9028
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-06-22 23:27:55 +00:00
Michael Mann 11b3d6445a Eliminate proto_tree_add_text from packet-sip.c
Change-Id: I560b2b0660ce2274507721450534d4d50fb6aec5
Reviewed-on: https://code.wireshark.org/review/8713
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-06-01 07:45:27 +00:00
Anders 6b72a528e6 [SIP] Add hf for header Session-Id
Change-Id: I9b1dc7822fd1753d9b5af9c00a7eda928f423a67
Reviewed-on: https://code.wireshark.org/review/8581
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-05-22 10:19:50 +00:00
Alexis La Goutte b4a68bcd49 SIP: Fix typo lenght => length
Change-Id: Ib533bd2526c27cf5f1161616fcf52136e40c827a
Reviewed-on: https://code.wireshark.org/review/8484
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-05-16 20:55:51 +00:00
Guy Harris bfb4327291 Remove tvb_ from the names of wsutil mempbrk routines.
Routines that don't take a tvbuff as an argument shouldn't have tvb_ in
the name.

Change-Id: I3550256551e30b3f329cbbfca71ef27c727d29c0
Reviewed-on: https://code.wireshark.org/review/7302
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-02-21 20:39:25 +00:00
Pascal Quantin bdcac172ea Fix crash at startup in SSE4.2 code when running a 32 bits Windows build
There is no guarantee that a g_malloc'ed memory block will be aligned on a 128 bits boundary
Instead use a static variable definition (at the cost of exposing the HAVE_SSE4_2 compilation flag in ws_mempbrk.h)

Change-Id: I661bf479a9d458d64c96bafc940c519d29a4780b
Reviewed-on: https://code.wireshark.org/review/7070
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-02-12 16:37:55 +00:00
Hadriel Kaplan a837570d02 Combine SSE and pre-compiled patterns for faster pbrk
This combines the SSE4.2 instructions usage, with pre-compiled
pattern searching usage, for a faster pbrk search method.

Testing against large files of HTTP and SIP, there is about
a 5% performance improvement by using pre-"compiled" patterns
for guint8_pbrk() instead of passing it the search string and
having it build the match array every time.
Similar to regular expressions, "compiling" the pattern match array
in advance only once and using the "compiled" patterns for
the searches is faster than compiling it every time.

Change-Id: Ifcbc14a6c93f32d15663a10d974bacdca5119a8e
Ping-Bug: 10798
Reviewed-on: https://code.wireshark.org/review/6990
Petri-Dish: Hadriel Kaplan <hadrielk@yahoo.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-02-11 09:14:50 +00:00
Pascal Quantin e915db7cc8 Do not iterate over reported length when using tvb_find_line_end
if captured length < reported length, this will trigger an infinite loop

Change-Id: I6557b455e7bbff12658a934e5bb13a42c023e133
Reviewed-on: https://code.wireshark.org/review/7053
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-02-10 14:02:20 +00:00
Michael Mann ada1eec702 SE_COPY_ADDRESS -> WMEM_COPY_ADDRESS
Copy addresses with wmem-scope instead of (forced) seasonal scope.  All existing instances were converted to wmem_file_scope, but the flexibility is there for other scopes.

Change-Id: I8e58837b9ef574ec7dd87e278470d7063ae8c1c2
Reviewed-on: https://code.wireshark.org/review/6564
Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-01-16 15:25:18 +00:00
Martin Mathieson adb81f335d Deleting unnecessary #includes from dissectors.
Fifth batch (packet-rtp.c -> end).

Will look at cleaning up and committing script afterwards.

Change-Id: I8ed61dc941d98d3f7259a9d1f74e214eb7b4bfa2
Reviewed-on: https://code.wireshark.org/review/6052
Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
2014-12-25 22:43:20 +00:00
Bill Meier b5d7b7ab6e Cleanup use of #includes in non-generated epan/dissector/*.c
Specifically:
- Set packet.h to be the first wireshark #include after
   config.h and "system" #includes.
   packet.h added as an #include in some cases when missing.
- Remove some #includes included (directly/indirectly) in
   packet.h. E.g., glib.h.
   (Done only for those files including packet.h).
- As needed, move "system" #includes to be after config.h and
   before wireshark #includes.
- Rework various #include file specifications for consistency.
- Misc.

Change-Id: Ifaa1a14b50b69fbad38ea4838a49dfe595c54c95
Reviewed-on: https://code.wireshark.org/review/5923
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-12-21 05:46:22 +00:00
Guy Harris 2b006ad30e Have a heur_dissector_list_t be an opaque handle.
This allows dissector lists to be looked up by name, so they can be
shared by multiple dissectors.

(This means that there's no "udplite" heuristic dissector list, but
there shouldn't be one - protocols can run atop UDP or UDPLite equally
well, and they share a port namespace and uint dissector table, so they
should share a heuristic dissector table as well.)

Change-Id: Ifb2d2c294938c06d348a159adea7a57db8d770a7
Reviewed-on: https://code.wireshark.org/review/5936
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-12-21 04:14:24 +00:00
Pascal Quantin 80d44af6b2 dissector_try_uint(_new) and dissector_try_string now return the number of bytes consumed
Change-Id: I528ad736caee1f29e2f0abfc0afcca6587d74eca
Reviewed-on: https://code.wireshark.org/review/5743
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-12-13 16:36:13 +00:00
AndersBroman 5570f8e24b [SIP] Try to fix another corner case of reassembly.
Change-Id: I38a80ebcadf0ef6d7fada692753188f2a6c3515b
Reviewed-on: https://code.wireshark.org/review/5717
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-12-11 09:33:50 +00:00
AndersBroman 52df6efa68 Try to improve reassembly when SIP PDU starts in the middle of a segment
and continues trough the next segment(s).

Change-Id: I8efe69361fda0c60ec6544cc6bbe28c91f07207c
Reviewed-on: https://code.wireshark.org/review/5583
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-12-08 08:53:02 +00:00
AndersBroman e55fe95c2a Make dissect_sip_tcp() a new style dissector.
Change-Id: I773f6738b3ed507e1ce031ee308d16de4bdeb7d4
Reviewed-on: https://code.wireshark.org/review/5580
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-12-03 09:00:06 +00:00
Michael Mann e3a04bb392 Ensure dissector data parameter is used instead of pinfo->private_data when passing data between dissectors using the "media_type" subdissector.
Change-Id: I82cbfed770b41404bc42cb6a4413db07d04dffdc
Reviewed-on: https://code.wireshark.org/review/5462
Reviewed-by: Michael Mann <mmann78@netscape.net>
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>
2014-11-25 15:18:05 +00:00
AndersBroman 73096642fd [SIP/DIAMETER] Reinstate the lost dfilter_store_sip_from_addr() and use it
for 3GPP AVP 601 Public-Identity.

Change-Id: I5ef6608e7821779b00f79486860ee5f578828dfc
Reviewed-on: https://code.wireshark.org/review/5467
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-11-24 16:35:11 +00:00
Guy Harris 80e6f6251e Get rid of calls to ctype.h functions.
They don't handle values outside the range -1 to 127, and their behavior
is locale-dependent.  Use g_ascii_isXXX() and g_ascii_toXXX() instead of
isXXX() and toXXX().

If you're checking for printable ASCII, don't use isascii() and don't
use iscntrl(), use g_ascii_isprint().  If you're checking for graphical
ASCII, i.e. printable ASCII except for a space, use g_ascii_isgraph().

Use ws_xton() to convert a hex digit character to the corresponding
numeric value.

Change-Id: Id3039bc586fbf66d8736c2df248c790c0d7a2330
Reviewed-on: https://code.wireshark.org/review/4851
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-10-20 06:15:19 +00:00
Johan Wahl 7207d2f8b0 SIP Enhance dissecion of PATH
Change-Id: I0508a886fb664f36b51464a9dfd6936092e197f8
Reviewed-on: https://code.wireshark.org/review/4543
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-10-08 13:43:20 +00:00
Martin Kaiser 8439fd5796 - Handle strings that have an opening but no closing quote
fixes the endless loop reported in

Bug: 10521

- Fix a typo.
Change-Id: I17b4a15e780d1d6122841a308348518063f82a59
Reviewed-on: https://code.wireshark.org/review/4467
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-10-07 07:49:13 +00:00
Bill Meier 6e7f9ec12e packet-sip.c: col_...() functions must not be called under 'if(...tree)' (even indirectly).
Fixes Bug #10453

Change-Id: I39f64b801ce9231059ee7e03416dd3828dffeb1f
Reviewed-on: https://code.wireshark.org/review/4051
Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-09-09 14:38:00 +00:00
Bill Meier 9ed99d5c4e Strip some trailing whitespace; Fix some indentation; Add editor-modelines as needed.
Change-Id: I943153e28f468070d86535abad7be032e1386118
Reviewed-on: https://code.wireshark.org/review/2994
Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-07-11 03:20:54 +00:00
Michael Mann 6691293a65 convert to proto_tree_add_subtree[_format]
Change-Id: I8d66b1bc7dbdfee3d4bf6fd3b3c21c6323b66f44
Reviewed-on: https://code.wireshark.org/review/2946
Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-07-09 00:25:04 +00:00
Jakub Zawadzki af7528999f Optimize sip dissector: avoid calling tvb_get_string_enc()
Fetch header value, only when we need to parse it.

Change-Id: I3c170ef8ab03985c8111a1b84ac1afc87bc8b5ca
Reviewed-on: https://code.wireshark.org/review/2767
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-07-02 06:07:44 +00:00
Jakub Zawadzki 659d0efc92 sip optimization: avoid calling tvb_get_guint8.
Use tvb_pbrk_guint8, tvb_find_guint8 when possible.

Change-Id: If8090d9b9b92146e9c216f139c056130d6b04e78
Reviewed-on: https://code.wireshark.org/review/2569
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-07-01 04:15:02 +00:00
AndersBroman 073bf490aa From Johan Whahl:
Added dissection of the SIP Service-Route header.

Change-Id: Ic4523edb374ae03492af5853863dde501a0c30e0
Reviewed-on: https://code.wireshark.org/review/2721
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-30 14:38:46 +00:00
Evan Huus 02edc3369b Revert "Optimize sip_is_known_sip_header()"
This reverts commit c9a5fbeb1d.

Change-Id: Ic2e5d531f719ed1107ef7bb1de12175d4601fd6d
Reviewed-on: https://code.wireshark.org/review/2574
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-06-23 16:22:30 +00:00
Jakub Zawadzki c9a5fbeb1d Optimize sip_is_known_sip_header()
Profling SIP shows that gperf generated hashing code, is
3 times faster than using GHashTable & g_str_hash/_equal()

This result in about 1% improve of whole dissection (sip traffic with filter).

Change-Id: Id6bf64bacd872e2d1c30a1b6356db444b25ba326
Reviewed-on: https://code.wireshark.org/review/2116
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-23 14:42:20 +00:00
Jakub Zawadzki a45ce57a1a Optimize dissect_sip_route_header()
Don't manually fetch each character to find ',' use tvb_find_guint8()

Change-Id: I29711421469e868a86bf2edd7adf8dcc85ed26eb
Reviewed-on: https://code.wireshark.org/review/2446
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-19 22:16:43 +00:00
Jakub Zawadzki 5844e12989 Optimize dissect_sip_uri()
- Combine tvb_find_guint8() for comma, semicolon into one tvb_pbrk_guint8()

- Instead of fetching each character use tvb_pbrk_guint8() to fast
  forward.

- Remove not needed tvb_find_guint8() call, as the result is discarded.

Change-Id: I38d6775b187146656d47cea9b64f8e0ccad18d36
Reviewed-on: https://code.wireshark.org/review/2384
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-19 00:08:04 +00:00
Michael Mann 73217d9f3f tvb_new_subset -> tvb_new_subset_length when length parameters are equal.
tvb_new_subset -> tvb_new_subset_remaining it appears that's what the intention is.

Change-Id: I2334bbf3f10475b3c22391392fc8b6864454de2d
Reviewed-on: https://code.wireshark.org/review/1999
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-06-07 15:41:07 +00:00
AndersBroman 7e77631eae Add a handle to dissect sip userinfo.
Change-Id: Ia8c15b710d79f12e8f62a49b17f057b746f31f0c
Reviewed-on: https://code.wireshark.org/review/1980
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-05 14:32:17 +00:00
Jakub Zawadzki 5c48774a01 sip: avoid calling tvb_format_text() when tree is not visible.
sip dissector when filtering spends ~5% of Ir in tvb_format_text(),
avoid calling.

Change-Id: I1de8e970b300354c0536aead65178401f140f509
Reviewed-on: https://code.wireshark.org/review/1974
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-05 11:48:51 +00:00
Pascal Quantin 1c5e92da75 SIP: remove leading spaces/tabs between security parameters
Change-Id: Icf15d18a16937e48d6b96749e8fa7c931916b491
Reviewed-on: https://code.wireshark.org/review/1743
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-23 15:24:45 +00:00
Pascal Quantin 16d7dcad0b SIP: parse ports definition in security mechanism
Change-Id: Iaef57f01b903b66ec55275d77f80f4e81a8130dc
Reviewed-on: https://code.wireshark.org/review/1747
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-23 15:22:51 +00:00
AndersBroman 2cfda31ff0 Change the signature of dissector_try_heuristic() to return hdtbl_entry
which can be used to call the found heuristic dissector on the next pass.

Introduce call_heur_dissector_direct() to be used to call a heuristic
dissector which accepted the frame on the first pass.

Change-Id: I524edd717b7d92b510bd60acfeea686d5f2b4582
Reviewed-on: https://code.wireshark.org/review/1697
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-21 20:17:29 +00:00
Jakub Zawadzki d7bd2ecf9f Add new proto_tree_add_format_text() function
There are lot of text dissectors which want just to add escaped (not filtrable) text,
add new function proto_tree_add_format_text() which just do this in optimized way.

Change-Id: Ia0e189b620cc0a5b74cfdaef1ad4571d766bb2ab
Reviewed-on: https://code.wireshark.org/review/1678
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-05-19 02:27:12 +00:00
Jakub Zawadzki ea95c837fe Introduce col_add_lstr(), use it instead of slower col_add_fstr.
We have callgrind benchmarks which shows that col_add_fstr() takes
5% of Ir count cause of formatting done in g_vsnprintf().

New col_add_lstr() can be used in few dissectors without much ugliness,
and it should be a little faster.

Change-Id: Ifddd951063dfd3a27c2a7da4dafce9b242c0472c
Reviewed-on: https://code.wireshark.org/review/1629
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-17 21:33:26 +00:00
AndersBroman cd8188ddb8 Reduce the number of calls to tvb_reported_lenght_remaining().
Change-Id: I717572d403b38a33ccd5e390ace3742f3d296250
Reviewed-on: https://code.wireshark.org/review/1622
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-13 11:49:31 +00:00
AndersBroman 89e61b9b37 Save the result of tvb_reported_length_remaining() and use it to reduce the number of calls to tvb_reported_length_remaining().
Change-Id: I6c110d7d995e4c771bbeea9013d867c46ca96778
Reviewed-on: https://code.wireshark.org/review/1613
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-12 21:49:00 +00:00
AndersBroman 1d1730fc56 Update some soft-deprecated APIs.
Change-Id: I0e255e72dd4cd9a94a4f92af409c4b34c0a266ed
Reviewed-on: https://code.wireshark.org/review/1491
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-04 19:23:05 +00:00
Pascal Quantin ad33357e62 Exported PDU: add support for more than 32 tags
Change-Id: Idc9f105164919827a8a81c88b5a56de4fa25df0b
Reviewed-on: https://code.wireshark.org/review/1197
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-18 20:15:04 +00:00
Bill Meier c0b0a11e4e (Pedantic): set editor modelines tab-width & etc to 8; Also: fix some indentation in packet-sip.c
Change-Id: I623fc5e4c1247dbe5e15f0f33270f4f0994268ab
Reviewed-on: https://code.wireshark.org/review/943
Reviewed-by: Bill Meier <wmeier@newsguy.com>
Tested-by: Bill Meier <wmeier@newsguy.com>
2014-04-03 15:31:56 +00:00