linux-imx/drivers/net/mctp
Matt Johnston ec36815215 net: mctp-serial: Fix missing escapes on transmit
commit f962e8361a upstream.

0x7d and 0x7e bytes are meant to be escaped in the data portion of
frames, but this didn't occur since next_chunk_len() had an off-by-one
error. That also resulted in the final byte of a payload being written
as a separate tty write op.

The chunk prior to an escaped byte would be one byte short, and the
next call would never test the txpos+1 case, which is where the escaped
byte was located. That meant it never hit the escaping case in
mctp_serial_tx_work().

Example Input: 01 00 08 c8 7e 80 02

Previous incorrect chunks from next_chunk_len():

01 00 08
c8 7e 80
02

With this fix:

01 00 08 c8
7e
80 02

Cc: stable@vger.kernel.org
Fixes: a0c2ccd9b5 ("mctp: Add MCTP-over-serial transport binding")
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 11:11:28 +02:00
..
Kconfig mctp i2c: MCTP I2C binding driver 2022-02-19 16:18:49 +00:00
Makefile mctp i2c: MCTP I2C binding driver 2022-02-19 16:18:49 +00:00
mctp-i2c.c mctp i2c: Switch back to use struct i2c_driver's .probe() 2023-06-13 20:46:20 -07:00
mctp-serial.c net: mctp-serial: Fix missing escapes on transmit 2024-09-12 11:11:28 +02:00