diff options
author | Jouni Malinen <jouni.malinen@atheros.com> | 2011-02-10 22:12:29 +0200 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2011-02-10 22:12:29 +0200 |
commit | e3e52e364ef86ed09d6caa5d0c327c88395f9968 (patch) | |
tree | 6f9e0a56acb413393eb95bdc1999815e5ce2ff92 /src/radius | |
parent | 810f08bab4a891b45c24746cbc335356c566b377 (diff) | |
download | external_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.c | 8 | ||||
-rw-r--r-- | src/radius/radius_client.h | 2 |
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 */ |