[PATCH] Find correct driver for interface additions/removals
Jouni Malinen
j at w1.fi
Tue Mar 22 13:12:37 PDT 2016
On Tue, Mar 15, 2016 at 01:02:08PM +0000, Roy Marples wrote:
> To pass the test case, the easiest solution is to add ifindex to the
> returned data, add a function call to the driver to return the ifindex
> and ensure they match (if the driver does infact have the function).
>
> I ran the test 20 times, and it passed each time.
> Hopefully you can apply the attaced patch now :)
> I will re-submit my interface matching patch shortly as it now needs
> re-factoring slightly.
Thanks, applied with some cleanup and fixes. In particular, this
addition in hostapd was problematic:
> diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
> +void wpa_supplicant_event_global(void *ctx, enum wpa_event_type event,
> + union wpa_event_data *data)
> + hapd = hostapd_get_iface(interfaces, data->interface_status.ifname);
> + if (hapd != NULL && hapd->driver->get_ifindex != NULL) {
> + unsigned int ifindex;
> +
> + ifindex = hapd->driver->get_ifindex(hapd->drv_priv);
hapd->driver and drv_priv can be NULL here and that results in NULL
pointer dereference either here or in driver_nl80211.c. I added checks
to avoid segfault in such cases (number of hwsim test cases hit this).
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list