mac80211: fix memory leak
authorSudip Mukherjee <sudip@vectorindia.org>
Tue, 2 Feb 2016 07:51:14 +0000 (13:21 +0530)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 30 Apr 2016 22:05:15 +0000 (00:05 +0200)
commit ea32f065bd3e3e09f0bcb3042f1664caf6b3e233 upstream.

On error we jumped to the error label and returned the error code but we
missed releasing sinfo.

Fixes: 5fe74014172d ("mac80211: avoid excessive stack usage in sta_info")
Reviewed-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[bwh: Backported to 3.2: there's no out_err label but there is another
 error case that would leak sinfo]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/mac80211/sta_info.c

index 6dcb080..feb7e67 100644 (file)
@@ -362,8 +362,10 @@ static int sta_info_finish_insert(struct sta_info *sta,
                                             u.ap);
                err = drv_sta_add(local, sdata, &sta->sta);
                if (err) {
-                       if (!async)
+                       if (!async) {
+                               kfree(sinfo);
                                return err;
+                       }
                        printk(KERN_DEBUG "%s: failed to add IBSS STA %pM to "
                                          "driver (%d) - keeping it anyway.\n",
                               sdata->name, sta->sta.addr, err);