char *buf = kmalloc(128, gfp);
 
        if (buf) {
-               sprintf(buf, "MLME-MICHAELMICFAILURE.indication("
-                       "keyid=%d %scast addr=%pM)", key_id,
-                       key_type == NL80211_KEYTYPE_GROUP ? "broad" : "uni",
-                       addr);
                memset(&wrqu, 0, sizeof(wrqu));
-               wrqu.data.length = strlen(buf);
+               wrqu.data.length =
+                       sprintf(buf, "MLME-MICHAELMICFAILURE."
+                               "indication(keyid=%d %scast addr=%pM)",
+                               key_id, key_type == NL80211_KEYTYPE_GROUP
+                               ? "broad" : "uni", addr);
                wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf);
                kfree(buf);
        }