]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: proximity: Fix use-after-free in hx9023s_send_cfg()
authorDheeraj Reddy Jonnalagadda <dheeraj.linuxdev@gmail.com>
Tue, 7 Jan 2025 12:35:10 +0000 (18:05 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 3 Feb 2025 19:30:11 +0000 (19:30 +0000)
Reorder the assignment of fw_size to happen before release_firmware()
to avoid accessing the firmware structure after it's been freed.

Fixes: e9ed97be4fcc ("iio: proximity: hx9023s: Added firmware file parsing functionality")
Closes: https://scan7.scan.coverity.com/#/project-view/52337/11354?selectedIssue=1602791
Signed-off-by: Dheeraj Reddy Jonnalagadda <dheeraj.linuxdev@gmail.com>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250107123510.44978-1-dheeraj.linuxdev@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/proximity/hx9023s.c

index e092a935dbac7e7f2f8e30bc0e8220a0e9bddaa6..5aa8e5a22f32604c1c50d776c712a8212ce504cd 100644 (file)
@@ -1036,12 +1036,13 @@ static int hx9023s_send_cfg(const struct firmware *fw, struct hx9023s_data *data
                return -ENOMEM;
 
        memcpy(bin->data, fw->data, fw->size);
-       release_firmware(fw);
 
        bin->fw_size = fw->size;
        bin->fw_ver = bin->data[FW_VER_OFFSET];
        bin->reg_count = get_unaligned_le16(bin->data + FW_REG_CNT_OFFSET);
 
+       release_firmware(fw);
+
        return hx9023s_bin_load(data, bin);
 }