Skip to contentSkip to conversation

i2c: Fix NULL pointer dereference in i2c_new_probed_device

RFC In review Oliver Pinter 2 participants 2 messages Aug 11, 2008 I2C

lore
Share & tools
lore
#0 lore raw

RFC 1/1 i2c: Fix NULL pointer dereference in i2c_new_probed_device

Quoted 2 lines

From b25b791b13aaa336b56c4f9bd417ff126363f80b Mon Sep 17 00:00:00 2001

It is an RFC for sending this patch for stable, when this patch needed, then send ACK and CC stable,
if not then send NAK.

---

From: Hans Verkuil <[email protected]>
Date: Sun, 10 Aug 2008 22:56:15 +0200
Subject: [PATCH] i2c: Fix NULL pointer dereference in i2c_new_probed_device

Fix a NULL pointer dereference that happened when calling i2c_new_probed_device on one of the addresses for which we use byte reads instead of quick write for detection purpose (that is: 0x30-0x37 and 0x50-0x5f).

drivers/i2c/i2c-core.c +3 -1
index 7bf38c4..c16dcad 100644
@@ -1451,9 +1451,11 @@ i2c_new_probed_device(struct i2c_adapter *adap,
 		if ((addr_list[i] & ~0x07) == 0x30
 		 || (addr_list[i] & ~0x0f) == 0x50
 		 || !i2c_check_functionality(adap, I2C_FUNC_SMBUS_QUICK)) {
+			union i2c_smbus_data data;
+
 			if (i2c_smbus_xfer(adap, addr_list[i], 0,
 					   I2C_SMBUS_READ, 0,
-					   I2C_SMBUS_BYTE, NULL) >= 0)
+					   I2C_SMBUS_BYTE, &data) >= 0)
 				break;
 		} else {
 			if (i2c_smbus_xfer(adap, addr_list[i], 0,
#1 lore raw
Quoted 2 lines · Oliver Pinter

From b25b791b13aaa336b56c4f9bd417ff126363f80b Mon Sep 17 00:00:00 2001

I doubt it...

Quoted 2 lines

It is an RFC for sending this patch for stable, when this patch needed, then send ACK and CC stable,
if not then send NAK.

And what exactly is stable going to do with a patch they can't even apply due to the quotation marks my e-mail client will have added?

Doesn't make sense to me. I can send my patches to stable myself, thank you. And without spamming LKML at that.

Quoted 34 lines

---

From: Hans Verkuil <[email protected]>
Date: Sun, 10 Aug 2008 22:56:15 +0200
Subject: [PATCH] i2c: Fix NULL pointer dereference in i2c_new_probed_device

Fix a NULL pointer dereference that happened when calling i2c_new_probed_device on one of the addresses for which we use byte reads instead of quick write for detection purpose (that is: 0x30-0x37 and 0x50-0x5f).

drivers/i2c/i2c-core.c +3 -1
index 7bf38c4..c16dcad 100644
@@ -1451,9 +1451,11 @@ i2c_new_probed_device(struct i2c_adapter *adap,
 		if ((addr_list[i] & ~0x07) == 0x30
 		 || (addr_list[i] & ~0x0f) == 0x50
 		 || !i2c_check_functionality(adap, I2C_FUNC_SMBUS_QUICK)) {
+			union i2c_smbus_data data;
+
 			if (i2c_smbus_xfer(adap, addr_list[i], 0,
 					   I2C_SMBUS_READ, 0,
-					   I2C_SMBUS_BYTE, NULL) >= 0)
+					   I2C_SMBUS_BYTE, &data) >= 0)
 				break;
 		} else {
 			if (i2c_smbus_xfer(adap, addr_list[i], 0,
Signature · 1 line
Jean Delvare