[PATCH v3 net] ipv4: fix error path in fou_create()
From: Kangmin Park <hidden>
Date: 2021-08-08 07:06:22
sock is always NULL when udp_sock_create() is failed and fou is always NULL when kzalloc() is failed in error label. So, add error_sock and error_alloc label and fix the error path in those cases. Signed-off-by: Kangmin Park <redacted> --- v3: - change commit message - fix error path --- net/ipv4/fou.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c
index e5f69b0bf3df..f1d99e776bb8 100644
--- a/net/ipv4/fou.c
+++ b/net/ipv4/fou.c@@ -572,13 +572,13 @@ static int fou_create(struct net *net, struct fou_cfg *cfg, /* Open UDP socket */ err = udp_sock_create(net, &cfg->udp_config, &sock); if (err < 0) - goto error; + goto error_sock; /* Allocate FOU port structure */ fou = kzalloc(sizeof(*fou), GFP_KERNEL); if (!fou) { err = -ENOMEM; - goto error; + goto error_alloc; } sk = sock->sk;
@@ -627,9 +627,10 @@ static int fou_create(struct net *net, struct fou_cfg *cfg, error: kfree(fou); +error_alloc: if (sock) udp_tunnel_sock_release(sock); - +error_sock: return err; }
--
2.26.2