diff options
author | Guy Harris <guy@alum.mit.edu> | 2015-10-27 17:41:23 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2015-10-28 00:44:26 +0000 |
commit | c7e42be2e5baf0a5f351b126cdac5c3d6d9241a0 (patch) | |
tree | f0e307a13ade2b261f181b9a58865a17aea00a02 /tshark.c | |
parent | 2831d391eff4a08f515effe2f1b20d659e1046ee (diff) |
Catch REPORT_DISSECTOR_BUG() calls in dissector registration routines.
Have epan_init() return a success/failure Boolean indication. Catch
exceptions when calling the dissector registration routines and, if we
get one, report the error and return a failure indication.
If epan_init() fails, quit, but first make sure the reported error is
displayed.
Change-Id: I0300cbb1f66a5644f857a205235124909d684c50
Reviewed-on: https://code.wireshark.org/review/11340
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'tshark.c')
-rw-r--r-- | tshark.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1225,7 +1225,9 @@ DIAG_ON(cast-qual) "-G" flag, as the "-G" flag dumps information registered by the dissectors, and we must do it before we read the preferences, in case any dissectors register preferences. */ - epan_init(register_all_protocols, register_all_protocol_handoffs, NULL, NULL); + if (!epan_init(register_all_protocols, register_all_protocol_handoffs, NULL, + NULL)) + return 2; /* Register all tap listeners; we do this before we parse the arguments, as the "-z" argument can specify a registered tap. */ |