|
From: Jean D. <jde...@su...> - 2015-09-09 08:55:19
|
Comparing the command byte with VKI_I2C_SMBUS_QUICK is like comparing
apples to carrots, it makes no sense. The command byte is unused for
quick transactions anyway so checking its value is pointless.
Bug found by code inspection.
---
coregrind/m_syswrap/syswrap-linux.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
--- valgrind.orig/coregrind/m_syswrap/syswrap-linux.c 2015-09-09 08:37:43.670491914 +0200
+++ valgrind/coregrind/m_syswrap/syswrap-linux.c 2015-09-09 08:41:50.164499996 +0200
@@ -6865,8 +6865,7 @@ PRE(sys_ioctl)
this variable can hava a different meaning */
/* to make matters worse i2c_smbus_write_byte stores its
value in command */
- if ( ! (((vkis->size == VKI_I2C_SMBUS_QUICK)
- && (vkis->command == VKI_I2C_SMBUS_QUICK)) ||
+ if ( ! ((vkis->size == VKI_I2C_SMBUS_QUICK) ||
((vkis->size == VKI_I2C_SMBUS_BYTE)
&& (vkis->read_write == VKI_I2C_SMBUS_WRITE)))) {
/* the rest uses the byte array to store the data,
@@ -9394,8 +9393,7 @@ POST(sys_ioctl)
if ((vkis->read_write == VKI_I2C_SMBUS_READ)
|| (vkis->size == VKI_I2C_SMBUS_PROC_CALL)
|| (vkis->size == VKI_I2C_SMBUS_BLOCK_PROC_CALL)) {
- if ( ! ((vkis->size == VKI_I2C_SMBUS_QUICK)
- && (vkis->command == VKI_I2C_SMBUS_QUICK))) {
+ if ( ! (vkis->size == VKI_I2C_SMBUS_QUICK)) {
UInt size;
switch(vkis->size) {
case VKI_I2C_SMBUS_BYTE:
--
Jean Delvare
SUSE L3 Support
|