From: Jouni Malinen Date: Sat, 4 Mar 2017 09:42:15 +0000 (+0200) Subject: Fix DHCP/NDISC snoop deinit followed by failing re-init X-Git-Tag: hostap_2_7~1516 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d4359923e1ea8bd618da51ce527f57c94b73c35b;p=thirdparty%2Fhostap.git Fix DHCP/NDISC snoop deinit followed by failing re-init It was possible to hit a double-free on the l2_packet socket if initialization of DHCP/NDISC snoop failed on a hostapd interface that had previously had those enabled successfully. Fix this by clearing the l2_packet pointers during deinit. Signed-off-by: Jouni Malinen --- diff --git a/src/ap/dhcp_snoop.c b/src/ap/dhcp_snoop.c index b9a36d760..6d8c2f4be 100644 --- a/src/ap/dhcp_snoop.c +++ b/src/ap/dhcp_snoop.c @@ -154,4 +154,5 @@ int dhcp_snoop_init(struct hostapd_data *hapd) void dhcp_snoop_deinit(struct hostapd_data *hapd) { l2_packet_deinit(hapd->sock_dhcp); + hapd->sock_dhcp = NULL; } diff --git a/src/ap/ndisc_snoop.c b/src/ap/ndisc_snoop.c index 3c086bfc7..4d6a92e08 100644 --- a/src/ap/ndisc_snoop.c +++ b/src/ap/ndisc_snoop.c @@ -182,4 +182,5 @@ int ndisc_snoop_init(struct hostapd_data *hapd) void ndisc_snoop_deinit(struct hostapd_data *hapd) { l2_packet_deinit(hapd->sock_ndisc); + hapd->sock_ndisc = NULL; }