diff
+ #define MAX_FIRMWARE_SIZE (1024 * 1024)  // 1 MB, adjust as needed
  size = fw->size;
+ if (size > MAX_FIRMWARE_SIZE) {
+     bt_dev_err(hdev, "Firmware size exceeds maximum allowed size");
+     release_firmware(fw);
+     return -EINVAL;
+ }
  data = vmalloc(size);
