Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84b0312e authored by Liad Kaufman's avatar Liad Kaufman Committed by Emmanuel Grumbach
Browse files

iwlwifi: fix potential buffer overrun in fw name



Fix a potential buffer overrun when creating the fw name
in drv->firmware_name by setting a maximal length to the
char array copied to it.
The maximal length is also updated to 32 rather than 25 to
keep both 32bit and 64bit alignment without requiring
padding to the struct it is in.

Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 034846cf
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ struct iwl_drv {
	const struct iwl_cfg *cfg;

	int fw_index;                   /* firmware we're trying to load */
	char firmware_name[25];         /* name of firmware file to load */
	char firmware_name[32];         /* name of firmware file to load */

	struct completion request_firmware_complete;

@@ -237,7 +237,8 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first)
		return -ENOENT;
	}

	sprintf(drv->firmware_name, "%s%s%s", name_pre, tag, ".ucode");
	snprintf(drv->firmware_name, sizeof(drv->firmware_name), "%s%s.ucode",
		 name_pre, tag);

	IWL_DEBUG_INFO(drv, "attempting to load firmware %s'%s'\n",
		       (drv->fw_index == UCODE_EXPERIMENTAL_INDEX)