|
From: <sv...@va...> - 2015-09-21 09:57:36
|
Author: sewardj
Date: Mon Sep 21 10:57:29 2015
New Revision: 15664
Log:
Merge, from trunk, r15655,6,7 (Followup to r14908 (BZ #342603))
Modified:
branches/VALGRIND_3_11_BRANCH/ (props changed)
branches/VALGRIND_3_11_BRANCH/coregrind/m_syswrap/syswrap-linux.c
Modified: branches/VALGRIND_3_11_BRANCH/coregrind/m_syswrap/syswrap-linux.c
==============================================================================
--- branches/VALGRIND_3_11_BRANCH/coregrind/m_syswrap/syswrap-linux.c (original)
+++ branches/VALGRIND_3_11_BRANCH/coregrind/m_syswrap/syswrap-linux.c Mon Sep 21 10:57:29 2015
@@ -6862,11 +6862,10 @@
PRE_MEM_READ("ioctl(VKI_I2C_SMBUS).i2c_smbus_ioctl_data.command",
(Addr)&vkis->command, sizeof(vkis->command));
/* i2c_smbus_write_quick hides its value in read_write, so
- this variable can hava a different meaning */
+ this variable can have 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,
@@ -6884,7 +6883,7 @@
case VKI_I2C_SMBUS_I2C_BLOCK_BROKEN:
case VKI_I2C_SMBUS_BLOCK_PROC_CALL:
case VKI_I2C_SMBUS_I2C_BLOCK_DATA:
- size = vkis->data->block[0];
+ size = 1 + vkis->data->block[0];
break;
default:
size = 0;
@@ -9388,14 +9387,11 @@
struct vki_i2c_smbus_ioctl_data *vkis
= (struct vki_i2c_smbus_ioctl_data *) ARG3;
/* i2c_smbus_write_quick hides its value in read_write, so
- this variable can hava a different meaning */
- /* to make matters worse i2c_smbus_write_byte stores its
- value in command */
+ this variable can have a different meaning */
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:
@@ -9410,7 +9406,7 @@
case VKI_I2C_SMBUS_I2C_BLOCK_BROKEN:
case VKI_I2C_SMBUS_BLOCK_PROC_CALL:
case VKI_I2C_SMBUS_I2C_BLOCK_DATA:
- size = vkis->data->block[0];
+ size = 1 + vkis->data->block[0];
break;
default:
size = 0;
|