Ver Fonte

mfd: Fix off-by-one value range checking for tps6507x

If bytes == (TPS6507X_MAX_REGISTER + 1), we have a buffer overflow when
doing memcpy(&msg[1], src, bytes).

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Axel Lin há 14 anos atrás
pai
commit
a8d6aa08dd
1 ficheiros alterados com 1 adições e 1 exclusões
  1. 1 1
      drivers/mfd/tps6507x.c

+ 1 - 1
drivers/mfd/tps6507x.c

@@ -68,7 +68,7 @@ static int tps6507x_i2c_write_device(struct tps6507x_dev *tps6507x, char reg,
 	u8 msg[TPS6507X_MAX_REGISTER + 1];
 	u8 msg[TPS6507X_MAX_REGISTER + 1];
 	int ret;
 	int ret;
 
 
-	if (bytes > (TPS6507X_MAX_REGISTER + 1))
+	if (bytes > TPS6507X_MAX_REGISTER)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	msg[0] = reg;
 	msg[0] = reg;