ASoC: SOF: loader: Adjust validation condition for fw_offset
authorKarol Trzcinski <karolx.trzcinski@linux.intel.com>
Wed, 20 May 2020 16:59:07 +0000 (19:59 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 25 May 2020 13:59:33 +0000 (14:59 +0100)
Condition in if statement should be same as trace message
and FW size equal to zero (after skipping offset) should
be marked as invalid.

Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20200520165911.21696-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-loader.c
sound/soc/sof/loader.c

index d762b3e..441d05c 100644 (file)
@@ -293,7 +293,7 @@ int hda_dsp_cl_boot_firmware(struct snd_sof_dev *sdev)
 
        chip_info = desc->chip_info;
 
-       if (plat_data->fw->size < plat_data->fw_offset) {
+       if (plat_data->fw->size <= plat_data->fw_offset) {
                dev_err(sdev->dev, "error: firmware size must be greater than firmware offset\n");
                return -EINVAL;
        }
index 4a5b57e..eed3d1e 100644 (file)
@@ -385,7 +385,7 @@ static int check_header(struct snd_sof_dev *sdev, const struct firmware *fw,
        struct snd_sof_fw_header *header;
        size_t fw_size = fw->size - fw_offset;
 
-       if (fw->size < fw_offset) {
+       if (fw->size <= fw_offset) {
                dev_err(sdev->dev, "error: firmware size must be greater than firmware offset\n");
                return -EINVAL;
        }