diff options
author | Dario Lombardo <lomato@gmail.com> | 2020-03-15 22:25:02 +0100 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2020-03-15 23:27:29 +0000 |
commit | d87bce7c4fc3da44ecea3b1486b34c24d30adbdb (patch) | |
tree | a4f8a4480d461973618d95d8051cf6e5c64ed72b /caputils | |
parent | 5b4af5b65bfdd705165049116ed8e57724b119b0 (diff) |
capture-wpcap: gracefully exit when has_wpcap is false.
Fix rawshark crash.
Bug: 16442
Change-Id: Id65f160d86a4ab204eedd1369e3ed9fa36f9c9e0
Reviewed-on: https://code.wireshark.org/review/36445
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'caputils')
-rw-r--r-- | caputils/capture-wpcap.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/caputils/capture-wpcap.c b/caputils/capture-wpcap.c index 0d856fe8a5..f34ea537e0 100644 --- a/caputils/capture-wpcap.c +++ b/caputils/capture-wpcap.c @@ -262,7 +262,7 @@ cant_load_winpcap_err(const char *app_name) } char* -pcap_lookupdev (char *errbuf) +pcap_lookupdev(char *errbuf) { char *ret; if (!has_wpcap) { @@ -563,15 +563,19 @@ pcap_statustostr(int a) int pcap_datalink_name_to_val(const char *name) { - g_assert(has_wpcap); - return p_pcap_datalink_name_to_val(name); + if (has_wpcap) + return p_pcap_datalink_name_to_val(name); + else + return -1; } int pcap_list_datalinks(pcap_t *p, int **ddlt) { - g_assert(has_wpcap); - return p_pcap_list_datalinks(p, ddlt); + if (has_wpcap) + return p_pcap_list_datalinks(p, ddlt); + else + return -1; } #ifdef HAVE_PCAP_FREE_DATALINKS @@ -596,15 +600,18 @@ pcap_free_datalinks(int *ddlt) const char * pcap_datalink_val_to_name(int dlt) { - g_assert(has_wpcap); - return p_pcap_datalink_val_to_name(dlt); + if (has_wpcap) + return p_pcap_datalink_val_to_name(dlt); + else + return NULL; } const char * pcap_datalink_val_to_description(int dlt) { - g_assert(has_wpcap); - return p_pcap_datalink_val_to_description(dlt); + if (has_wpcap) + return p_pcap_datalink_val_to_description(dlt); + return NULL; } void pcap_breakloop(pcap_t *a) @@ -621,7 +628,7 @@ int pcap_setbuff(pcap_t *a, int b) /* pcap_next_ex is available since libpcap 0.8 / WinPcap 3.0! */ /* (if you get a declaration warning here, try to update to at least WinPcap 3.1b4 develpack) */ -int pcap_next_ex (pcap_t *a, struct pcap_pkthdr **b, const u_char **c) +int pcap_next_ex(pcap_t *a, struct pcap_pkthdr **b, const u_char **c) { g_assert(has_wpcap); return p_pcap_next_ex(a, b, c); |