aboutsummaryrefslogtreecommitdiffstats
path: root/src/radius
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2011-02-10 22:12:29 +0200
committerJouni Malinen <j@w1.fi>2011-02-10 22:12:29 +0200
commite3e52e364ef86ed09d6caa5d0c327c88395f9968 (patch)
tree6f9e0a56acb413393eb95bdc1999815e5ce2ff92 /src/radius
parent810f08bab4a891b45c24746cbc335356c566b377 (diff)
downloadexternal_wpa_supplicant_8_ti-e3e52e364ef86ed09d6caa5d0c327c88395f9968.zip
external_wpa_supplicant_8_ti-e3e52e364ef86ed09d6caa5d0c327c88395f9968.tar.gz
external_wpa_supplicant_8_ti-e3e52e364ef86ed09d6caa5d0c327c88395f9968.tar.bz2
hostapd: Fix RADIUS client configuration update on reconfig
The internal pointer to RADIUS client configuration needs to be updated whenever a new hostapd configuration is loaded. Without this, freed memory may be dereferenced and this can result in segmentation faults.
Diffstat (limited to 'src/radius')
-rw-r--r--src/radius/radius_client.c8
-rw-r--r--src/radius/radius_client.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/radius/radius_client.c b/src/radius/radius_client.c
index 171af29..691f77a 100644
--- a/src/radius/radius_client.c
+++ b/src/radius/radius_client.c
@@ -1489,3 +1489,11 @@ int radius_client_get_mib(struct radius_client_data *radius, char *buf,
return count;
}
+
+
+void radius_client_reconfig(struct radius_client_data *radius,
+ struct hostapd_radius_servers *conf)
+{
+ if (radius)
+ radius->conf = conf;
+}
diff --git a/src/radius/radius_client.h b/src/radius/radius_client.h
index 644ea23..18e7290 100644
--- a/src/radius/radius_client.h
+++ b/src/radius/radius_client.h
@@ -259,5 +259,7 @@ void radius_client_flush_auth(struct radius_client_data *radius,
const u8 *addr);
int radius_client_get_mib(struct radius_client_data *radius, char *buf,
size_t buflen);
+void radius_client_reconfig(struct radius_client_data *radius,
+ struct hostapd_radius_servers *conf);
#endif /* RADIUS_CLIENT_H */