Răsfoiți Sursa

media: drxj: better handle errors

as reported by smatch:
	drivers/media/dvb-frontends/drx39xyj/drxj.c:2157 drxj_dap_atomic_read_write_block() error: uninitialized symbol 'word'.

The driver doesn't check if a read error occurred. Add such
check.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Mauro Carvalho Chehab 8 ani în urmă
părinte
comite
452c644694
1 a modificat fișierele cu 7 adăugiri și 3 ștergeri
  1. 7 3
      drivers/media/dvb-frontends/drx39xyj/drxj.c

+ 7 - 3
drivers/media/dvb-frontends/drx39xyj/drxj.c

@@ -2151,9 +2151,13 @@ int drxj_dap_atomic_read_write_block(struct i2c_device_addr *dev_addr,
 	if (read_flag) {
 	if (read_flag) {
 		/* read data from buffer */
 		/* read data from buffer */
 		for (i = 0; i < (datasize / 2); i++) {
 		for (i = 0; i < (datasize / 2); i++) {
-			drxj_dap_read_reg16(dev_addr,
-					    (DRXJ_HI_ATOMIC_BUF_START + i),
-					   &word, 0);
+			rc = drxj_dap_read_reg16(dev_addr,
+						 (DRXJ_HI_ATOMIC_BUF_START + i),
+						 &word, 0);
+			if (rc) {
+				pr_err("error %d\n", rc);
+				goto rw_error;
+			}
 			data[2 * i] = (u8) (word & 0xFF);
 			data[2 * i] = (u8) (word & 0xFF);
 			data[(2 * i) + 1] = (u8) (word >> 8);
 			data[(2 * i) + 1] = (u8) (word >> 8);
 		}
 		}