From 0577e8e679c3c74daaf927713c201998a85d8c2b Mon Sep 17 00:00:00 2001 From: Pooventhiran G Date: Tue, 27 Oct 2020 11:54:21 +0530 Subject: [PATCH] nl80211: Check for proper nlmsg allocation in send_and_recv_msgs_owner() When nlmsg allocation fails, nl80211_drv_msg() returns NULL and the call to send_and_recv_msgs_owner() from nl80211_leave_ibss() could have ended up dereferencing a NULL pointer. Fix this by make send_and_recv_msgs_owner() more consistent with other send_and_recv*() cases that check msg == NULL internally. Fixes: 12ea7dee311b ("nl80211: Use nl80211 control port for receiving EAPOL frames") Signed-off-by: Pooventhiran G --- src/drivers/driver_nl80211.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 2ee34d11d..ffa0c467e 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -502,6 +502,9 @@ static int send_and_recv_msgs_owner(struct wpa_driver_nl80211_data *drv, void *), void *ack_data) { + if (!msg) + return -ENOMEM; + /* Control port over nl80211 needs the flags and attributes below. * * The Linux kernel has initial checks for them (in nl80211.c) like: