sctp: Fix COMM_LOST/CANT_STR_ASSOC err reporting on big-endian platforms
Commit978aa04741
("sctp: fix some type cast warnings introduced since very beginning")' broke err reading from sctp_arg, because it reads the value as 32-bit integer, although the value is stored as 16-bit integer. Later this value is passed to the userspace in 16-bit variable, thus the user always gets 0 on big-endian platforms. Fix it by reading the __u16 field of sctp_arg union, as reading err field would produce a sparse warning. Fixes:978aa04741
("sctp: fix some type cast warnings introduced since very beginning") Signed-off-by: Petr Malat <oss@malat.biz> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Link: https://lore.kernel.org/r/20201030132633.7045-1-oss@malat.biz Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
0a26ba0603
Коммит
b6df8c8141
|
@ -1601,12 +1601,12 @@ static int sctp_cmd_interpreter(enum sctp_event_type event_type,
|
|||
break;
|
||||
|
||||
case SCTP_CMD_INIT_FAILED:
|
||||
sctp_cmd_init_failed(commands, asoc, cmd->obj.u32);
|
||||
sctp_cmd_init_failed(commands, asoc, cmd->obj.u16);
|
||||
break;
|
||||
|
||||
case SCTP_CMD_ASSOC_FAILED:
|
||||
sctp_cmd_assoc_failed(commands, asoc, event_type,
|
||||
subtype, chunk, cmd->obj.u32);
|
||||
subtype, chunk, cmd->obj.u16);
|
||||
break;
|
||||
|
||||
case SCTP_CMD_INIT_COUNTER_INC:
|
||||
|
|
Загрузка…
Ссылка в новой задаче