xfrm: Fix leak of dev tracker
authorLeon Romanovsky <leonro@nvidia.com>
Wed, 19 Apr 2023 12:19:08 +0000 (15:19 +0300)
committerSteffen Klassert <steffen.klassert@secunet.com>
Fri, 21 Apr 2023 06:54:04 +0000 (08:54 +0200)
At the stage of direction checks, the netdev reference tracker is
already initialized, but released with wrong *_put() call.

Fixes: 919e43fad516 ("xfrm: add an interface to offload policy")
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_device.c

index 95f1436bf6a2e3d46bf626c784c952bd845856e5..e2ca50bfca24fd5c096045a446d61d91c99811ef 100644 (file)
@@ -378,7 +378,7 @@ int xfrm_dev_policy_add(struct net *net, struct xfrm_policy *xp,
                break;
        default:
                xdo->dev = NULL;
-               dev_put(dev);
+               netdev_put(dev, &xdo->dev_tracker);
                NL_SET_ERR_MSG(extack, "Unrecognized offload direction");
                return -EINVAL;
        }