mmc: core: Avoid negative index with array access
authorMikko Rapeli <mikko.rapeli@linaro.org>
Wed, 13 Mar 2024 13:37:44 +0000 (15:37 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 25 Mar 2024 11:25:04 +0000 (12:25 +0100)
Commit 4d0c8d0aef63 ("mmc: core: Use mrq.sbc in close-ended ffu") assigns
prev_idata = idatas[i - 1], but doesn't check that the iterator i is
greater than zero. Let's fix this by adding a check.

Fixes: 4d0c8d0aef63 ("mmc: core: Use mrq.sbc in close-ended ffu")
Link: https://lore.kernel.org/all/20231129092535.3278-1-avri.altman@wdc.com/
Cc: stable@vger.kernel.org
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Tested-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://lore.kernel.org/r/20240313133744.2405325-2-mikko.rapeli@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/block.c

index 600adc3f2af484caf758002b0bb36cb6f25094e1..90c51b12148e8d6d5f86377c8766959bbf678d18 100644 (file)
@@ -488,7 +488,7 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
        if (idata->flags & MMC_BLK_IOC_DROP)
                return 0;
 
-       if (idata->flags & MMC_BLK_IOC_SBC)
+       if (idata->flags & MMC_BLK_IOC_SBC && i > 0)
                prev_idata = idatas[i - 1];
 
        /*