[PATCH] media: solo6x10: Initialize I2C read data

Ruoyu Wang <[email protected]>
Newsgroups org.kernel.vger.linux-media,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
solo_i2c_readbyte() ignores the number of messages completed by
i2c_transfer(). If the transfer stops before the read message completes,
the adapter returns a short count without storing anything in data. The
helper then returns an uninitialized stack byte, so chip detection and
user-visible control and status reads can consume unpredictable values.

The helper returns a byte and has no error channel. Preserve that API and
initialize data to zero as a deterministic fallback. Successful reads
still overwrite it, while failed or partial transfers no longer expose
indeterminate stack contents.

This issue was found by a static analysis checker and confirmed by manual
source review.

Fixes: faa4fd2a0951 ("Staging: solo6x10: New driver (staging) for Softlogic 6x10")
Signed-off-by: Ruoyu Wang <[email protected]>
---
 drivers/media/pci/solo6x10/solo6x10-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/pci/solo6x10/solo6x10-i2c.c b/drivers/media/pci/solo6x10/solo6x10-i2c.c
index 7db785e9c99791..1b37dccd137a05 100644
--- a/drivers/media/pci/solo6x10/solo6x10-i2c.c
+++ b/drivers/media/pci/solo6x10/solo6x10-i2c.c
@@ -25,7 +25,7 @@
 u8 solo_i2c_readbyte(struct solo_dev *solo_dev, int id, u8 addr, u8 off)
 {
 	struct i2c_msg msgs[2];
-	u8 data;
+	u8 data = 0;
 
 	msgs[0].flags = 0;
 	msgs[0].addr = addr;
-- 
2.51.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.