ASoC: renesas: rz-ssi: Add a check for negative sample_space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

commit 82a0a3e6f8c02b3236b55e784a083fa4ee07c321 upstream.

My static checker rule complains about this code.  The concern is that
if "sample_space" is negative then the "sample_space >= runtime->channels"
condition will not work as intended because it will be type promoted to a
high unsigned int value.

strm->fifo_sample_size is SSI_FIFO_DEPTH (32).  The SSIFSR_TDC_MASK is
0x3f.  Without any further context it does seem like a reasonable warning
and it can't hurt to add a check for negatives.

Cc: stable@xxxxxxxxxxxxxxx
Fixes: 03e786bd4341 ("ASoC: sh: Add RZ/G2L SSIF-2 driver")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Link: https://patch.msgid.link/e07c3dc5-d885-4b04-a742-71f42243f4fd@stanley.mountain
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 sound/soc/renesas/rz-ssi.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/sound/soc/renesas/rz-ssi.c
+++ b/sound/soc/renesas/rz-ssi.c
@@ -526,6 +526,8 @@ static int rz_ssi_pio_send(struct rz_ssi
 	sample_space = strm->fifo_sample_size;
 	ssifsr = rz_ssi_reg_readl(ssi, SSIFSR);
 	sample_space -= (ssifsr >> SSIFSR_TDC_SHIFT) & SSIFSR_TDC_MASK;
+	if (sample_space < 0)
+		return -EINVAL;
 
 	/* Only add full frames at a time */
 	while (frames_left && (sample_space >= runtime->channels)) {


Patches currently in stable-queue which might be from dan.carpenter@xxxxxxxxxx are

queue-6.13/wifi-ath12k-ath12k_mac_op_set_key-fix-uninitialized-.patch
queue-6.13/ksmbd-fix-integer-overflows-on-32-bit-systems.patch
queue-6.13/binfmt_flat-fix-integer-overflow-bug-on-32-bit-systems.patch
queue-6.13/asoc-renesas-rz-ssi-add-a-check-for-negative-sample_space.patch
queue-6.13/tipc-re-order-conditions-in-tipc_crypto_key_rcv.patch




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux