mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-23 08:35:19 -05:00
mptcp: bugfix for RM_ADDR option parsing
In MPTCPOPT_RM_ADDR option parsing, the pointer "ptr" pointed to the
"Subtype" octet, the pointer "ptr+1" pointed to the "Address ID" octet:
+-------+-------+---------------+
|Subtype|(resvd)| Address ID |
+-------+-------+---------------+
| |
ptr ptr+1
We should set mp_opt->rm_id to the value of "ptr+1", not "ptr". This patch
will fix this bug.
Fixes: 3df523ab58
("mptcp: Add ADD_ADDR handling")
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3763a24c72
commit
8e60eed6b3
1 changed files with 2 additions and 0 deletions
|
@ -273,6 +273,8 @@ static void mptcp_parse_option(const struct sk_buff *skb,
|
||||||
if (opsize != TCPOLEN_MPTCP_RM_ADDR_BASE)
|
if (opsize != TCPOLEN_MPTCP_RM_ADDR_BASE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
ptr++;
|
||||||
|
|
||||||
mp_opt->rm_addr = 1;
|
mp_opt->rm_addr = 1;
|
||||||
mp_opt->rm_id = *ptr++;
|
mp_opt->rm_id = *ptr++;
|
||||||
pr_debug("RM_ADDR: id=%d", mp_opt->rm_id);
|
pr_debug("RM_ADDR: id=%d", mp_opt->rm_id);
|
||||||
|
|
Loading…
Add table
Reference in a new issue