]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - net/wireless/sme.c
Merge branch 'master' into for-davem
[linux-imx.git] / net / wireless / sme.c
index c2735775ec19d87e2dbf7872a409d5e9d852c51b..8ddf5ae0dd036442f67f46289414e83682193ef1 100644 (file)
@@ -518,12 +518,16 @@ void cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
        ev->type = EVENT_CONNECT_RESULT;
        if (bssid)
                memcpy(ev->cr.bssid, bssid, ETH_ALEN);
-       ev->cr.req_ie = ((u8 *)ev) + sizeof(*ev);
-       ev->cr.req_ie_len = req_ie_len;
-       memcpy((void *)ev->cr.req_ie, req_ie, req_ie_len);
-       ev->cr.resp_ie = ((u8 *)ev) + sizeof(*ev) + req_ie_len;
-       ev->cr.resp_ie_len = resp_ie_len;
-       memcpy((void *)ev->cr.resp_ie, resp_ie, resp_ie_len);
+       if (req_ie_len) {
+               ev->cr.req_ie = ((u8 *)ev) + sizeof(*ev);
+               ev->cr.req_ie_len = req_ie_len;
+               memcpy((void *)ev->cr.req_ie, req_ie, req_ie_len);
+       }
+       if (resp_ie_len) {
+               ev->cr.resp_ie = ((u8 *)ev) + sizeof(*ev) + req_ie_len;
+               ev->cr.resp_ie_len = resp_ie_len;
+               memcpy((void *)ev->cr.resp_ie, resp_ie, resp_ie_len);
+       }
        ev->cr.status = status;
 
        spin_lock_irqsave(&wdev->event_lock, flags);