]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfrm: set ipv4 no_pmtu_disc flag only on output sa when direction is set
authorAntony Antony <antony.antony@secunet.com>
Thu, 11 Dec 2025 10:30:27 +0000 (11:30 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 15 Dec 2025 10:06:25 +0000 (11:06 +0100)
The XFRM_STATE_NOPMTUDISC flag is only meaningful for output SAs, but
it was being applied regardless of the SA direction when the sysctl
ip_no_pmtu_disc is enabled. This can unintentionally affect input SAs.

Limit setting XFRM_STATE_NOPMTUDISC to output SAs when the SA direction
is configured.

Closes: https://github.com/strongswan/strongswan/issues/2946
Fixes: a4a87fa4e96c ("xfrm: Add Direction to the SA in or out")
Signed-off-by: Antony Antony <antony.antony@secunet.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_state.c

index 9e14e453b55cc9490dd3439378b482fc49c3af5f..98b362d518363bbc100b5446d6a327b3209fed99 100644 (file)
@@ -3151,6 +3151,7 @@ int __xfrm_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
        int err;
 
        if (family == AF_INET &&
+           (!x->dir || x->dir == XFRM_SA_DIR_OUT) &&
            READ_ONCE(xs_net(x)->ipv4.sysctl_ip_no_pmtu_disc))
                x->props.flags |= XFRM_STATE_NOPMTUDISC;