if (strlen(s) == 0) {
/* Copy BSSID from neighbor report */
if (hwaddr_compact_aton(nr_s, bssid))
- goto invalid;
+ goto invalid_free;
} else if (hwaddr_aton(s, bssid)) {
- goto invalid;
+ goto invalid_free;
}
/* SSID */
} else {
ssid.ssid_len = strlen(s);
if (ssid.ssid_len > sizeof(ssid.ssid))
- goto invalid;
+ goto invalid_free;
memcpy(&ssid, s, ssid.ssid_len);
}
wpabuf_free(data);
continue;
+invalid_free:
+ wpabuf_free(data);
invalid:
return UBUS_STATUS_INVALID_ARGUMENT;
}
}
ret = hostapd_send_beacon_req(hapd, addr, 0, req);
+ wpabuf_free(req);
if (ret < 0)
return -ret;