hostapd: backport rt5370 fix from upstream

Fixes #7166

hostapd crashes with segfault when using RT5370. This is because the driver
reports Beacon RX prior to hostapd having completed the AP mode setup.

This upstream commit fixes it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Peter Korsgaard 2014-06-04 23:06:30 +02:00
parent c9dc0bf073
commit f3a12bc334

View File

@ -0,0 +1,35 @@
From 334ec001bbd31c5bc83d6593e58dfbbf6b8785a2 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Thu, 6 Feb 2014 15:22:06 +0200
Subject: [PATCH] Fix Beacon RX before AP setup completion
It is possible for the driver to report Beacon RX prior to hostapd
having completed AP mode setup, e.g., when changing country code. Beacon
frame processing for OLBC was not prepared for this and could trigger
segfault due to NULL pointer dereference. Fix this by ignoring the
Beacon frames received prior to completing interface setup when
determining OLBC updates.
Signed-hostap: Jouni Malinen <j@w1.fi>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
src/ap/ap_list.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/ap/ap_list.c b/src/ap/ap_list.c
index f9b1540..287d520 100644
--- a/src/ap/ap_list.c
+++ b/src/ap/ap_list.c
@@ -32,7 +32,8 @@ static int ap_list_beacon_olbc(struct hostapd_iface *iface, struct ap_info *ap)
{
int i;
- if (iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G ||
+ if (iface->current_mode == NULL ||
+ iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G ||
iface->conf->channel != ap->channel)
return 0;
--
2.0.0.rc2