mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
net: l2tp: fix reversed udp6 checksum flags
This patch fixes a bug which causes the behavior of whether to ignore udp6 checksum of udp6 encapsulated l2tp tunnel contrary to what userspace program requests. When the flag `L2TP_ATTR_UDP_ZERO_CSUM6_RX` is set by userspace, it is expected that udp6 checksums of received packets of the l2tp tunnel to create should be ignored. In `l2tp_netlink.c`: `l2tp_nl_cmd_tunnel_create()`, `cfg.udp6_zero_rx_checksums` is set according to the flag, and then passed to `l2tp_core.c`: `l2tp_tunnel_create()` and then `l2tp_tunnel_sock_create()`. In `l2tp_tunnel_sock_create()`, `udp_conf.use_udp6_rx_checksums` is set the same to `cfg.udp6_zero_rx_checksums`. However, if we want the checksum to be ignored, `udp_conf.use_udp6_rx_checksums` should be set to `false`, i.e. be set to the contrary. Similarly, the same should be done to `udp_conf.use_udp6_tx_checksums`. Signed-off-by: Miao Wang <[email protected]> Acked-by: James Chapman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
f27337e16f
commit
018f825858
1 changed files with 2 additions and 2 deletions
|
|
@ -1376,9 +1376,9 @@ static int l2tp_tunnel_sock_create(struct net *net,
|
|||
memcpy(&udp_conf.peer_ip6, cfg->peer_ip6,
|
||||
sizeof(udp_conf.peer_ip6));
|
||||
udp_conf.use_udp6_tx_checksums =
|
||||
cfg->udp6_zero_tx_checksums;
|
||||
! cfg->udp6_zero_tx_checksums;
|
||||
udp_conf.use_udp6_rx_checksums =
|
||||
cfg->udp6_zero_rx_checksums;
|
||||
! cfg->udp6_zero_rx_checksums;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue