[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hostap
Subject:    [PATCH] Find correct driver for interface additions/removals
From:       j () w1 ! fi (Jouni Malinen)
Date:       2016-03-22 20:12:37
Message-ID: 20160322201237.GA18053 () w1 ! fi
[Download RAW message or body]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic