Wireshark-dev: [Wireshark-dev] Crash in airpcap_ui_dlg.c
From: Gisle Vanem <gvanem@xxxxxxxxxxxx>
Date: Thu, 17 May 2012 00:54:58 +0200
When I did this:

1. Open menu 'Capture | Interfaces' and select 'Options | Manage Interfaces'.
2. Click 'Local Interfaces' with the intention to hide the interface
  'MS Tunnel interface driver', I got a crash at airpcap_channel_offset_changed_cb().

I'm not sure how the right way (TM) of hiding an interface is supposed to work. But
this is the offending snippet:

void
airpcap_channel_offset_changed_cb(GtkWidget *channel_offset_cb, gpointer data _U_)
{
!! >>  airpcap_if_selected->channelInfo.ExtChannel = airpcap_get_selected_channel_offset(channel_offset_cb);
   airpcap_if_selected->saved = FALSE;

WinDbg shows 'airpcap_if_selected' is NULL. W/o knowing why, this patch fixed it for me:

--- SVN-Latest\ui\gtk\airpcap_gui_utils.c       Fri Apr 20 18:02:07 2012
+++ ui\gtk\airpcap_gui_utils.c  Wed May 16 22:37:02 2012
@@ -556,6 +556,9 @@
void
airpcap_channel_offset_changed_cb(GtkWidget *channel_offset_cb, gpointer data _U_)
{
+   if (!airpcap_if_selected)
+      return;
+
    airpcap_if_selected->channelInfo.ExtChannel = airpcap_get_selected_channel_offset(channel_offset_cb);
    airpcap_if_selected->saved = FALSE;
    change_airpcap_settings = TRUE;

These are my ifaces:

G:\MingW32\src\inet\Wireshark>tshark.exe -D
1. \\.\airpcap00 (AirPcap USB wireless capture adapter nr. 00)
2. \Device\NPF_GenericDialupAdapter (Adapter for generic dialup and VPN capture)
3. \Device\NPF_{7F56352E-EF2F-49F4-844C-BA1FA0105667} (MS Tunnel Interface Driver)
4. \Device\NPF_{8D3A23A7-9C6C-408B-A23B-6736F9E56510} (Realtek 10/100/1000 Ethernet NIC
                  )
5. \Device\NPF_{37FC13D9-2F52-47CA-AB64-32B2B434C749} (Realtek RTL8187 Wireless LAN USB NIC
                           )
6. \Device\NPF_{75451EE7-5145-471A-BAF5-124BE8439D10} (WAN (PPP/SLIP) Interface)

--gv