]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Drop revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
authorSasha Levin <sashal@kernel.org>
Mon, 20 Sep 2021 12:14:39 +0000 (08:14 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 20 Sep 2021 12:14:39 +0000 (08:14 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
14 files changed:
queue-4.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-4.14/series
queue-4.19/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-4.19/series
queue-4.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-4.4/series
queue-4.9/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-4.9/series
queue-5.10/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-5.10/series
queue-5.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-5.14/series
queue-5.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch [deleted file]
queue-5.4/series

diff --git a/queue-4.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-4.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index 8b4133b..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    4 +---
- 4 files changed, 6 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -277,7 +277,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - sizeof(struct cmsghdr);
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
-                                            err < 40 ? err : 40);
-                       if (err)
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -749,10 +749,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -571,10 +571,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -955,10 +955,8 @@ int udp_sendmsg(struct sock *sk, struct
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, sk->sk_family == AF_INET6);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index 329b500274a1895b3d8c293e488d3e4128f8f61e..bb226e77cd59b7d82cc228eb13b4c4349eb0f8e8 100644 (file)
@@ -200,6 +200,5 @@ r6040-restore-mdio-clock-frequency-after-mac-reset.patch
 tipc-increase-timeout-in-tipc_sk_enqueue.patch
 events-reuse-value-read-using-read_once-instead-of-re-reading-it.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
 ibmvnic-check-failover_pending-in-login-response.patch
diff --git a/queue-4.19/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-4.19/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index 68b5e6a..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    5 ++---
- 4 files changed, 7 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -279,7 +279,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - sizeof(struct cmsghdr);
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
-                                            err < 40 ? err : 40);
-                       if (err)
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -741,10 +741,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -566,10 +566,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -1004,10 +1004,9 @@ int udp_sendmsg(struct sock *sk, struct
-               if (err > 0)
-                       err = ip_cmsg_send(sk, msg, &ipc,
-                                          sk->sk_family == AF_INET6);
--              if (unlikely(err < 0)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err < 0))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index af6a7e3e95618d93cbb45ecaed2a80615730fad7..b4ad1c516c60e349751075da2b60e7916792f563 100644 (file)
@@ -266,7 +266,6 @@ net-mlx5-fix-potential-sleeping-in-atomic-context.patch
 events-reuse-value-read-using-read_once-instead-of-re-reading-it.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
 net-dsa-destroy-the-phylink-instance-on-any-error-in-dsa_slave_phy_setup.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
 qed-handle-management-fw-error.patch
 ibmvnic-check-failover_pending-in-login-response.patch
diff --git a/queue-4.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-4.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index df7b106..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    4 +---
- net/ipv4/raw.c         |    4 +---
- net/ipv4/udp.c         |    4 +---
- 4 files changed, 4 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -253,7 +253,7 @@ int ip_cmsg_send(struct net *net, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr));
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
-                                            err < 40 ? err : 40);
-                       if (err)
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -753,10 +753,8 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sock_net(sk), msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -557,10 +557,8 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(net, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -966,10 +966,8 @@ int udp_sendmsg(struct sock *sk, struct
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sock_net(sk), msg, &ipc,
-                                  sk->sk_family == AF_INET6);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index dc8d65f5f7d234fe2670b46c05161f8cb197b0f5..92369c4ce9b8c11ac0d29c0d7c7b5be16613abbb 100644 (file)
@@ -123,5 +123,4 @@ net-l2tp-fix-reference-count-leak-in-l2tp_udp_recv_core.patch
 r6040-restore-mdio-clock-frequency-after-mac-reset.patch
 tipc-increase-timeout-in-tipc_sk_enqueue.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 x86-mm-fix-kern_addr_valid-to-cope-with-existing-but-not-present-entries.patch
diff --git a/queue-4.9/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-4.9/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index 60dbab6..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    4 +---
- 4 files changed, 6 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -261,7 +261,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr));
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
-                                            err < 40 ? err : 40);
-                       if (err)
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -749,10 +749,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -560,10 +560,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -959,10 +959,8 @@ int udp_sendmsg(struct sock *sk, struct
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, sk->sk_family == AF_INET6);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index e3c24223dd6c61a722312e2fed4b20797a6a2591..1536f1d155d74f97fe6ead7a430a7768d6b7e1fe 100644 (file)
@@ -160,7 +160,6 @@ r6040-restore-mdio-clock-frequency-after-mac-reset.patch
 tipc-increase-timeout-in-tipc_sk_enqueue.patch
 events-reuse-value-read-using-read_once-instead-of-re-reading-it.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
 ibmvnic-check-failover_pending-in-login-response.patch
 x86-mm-fix-kern_addr_valid-to-cope-with-existing-but-not-present-entries.patch
diff --git a/queue-5.10/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-5.10/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index 1e88c0b..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    5 ++---
- 4 files changed, 7 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -279,7 +279,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - sizeof(struct cmsghdr);
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt,
-                                            KERNEL_SOCKPTR(CMSG_DATA(cmsg)),
-                                            err < 40 ? err : 40);
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -725,10 +725,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -562,10 +562,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -1104,10 +1104,9 @@ int udp_sendmsg(struct sock *sk, struct
-               if (err > 0)
-                       err = ip_cmsg_send(sk, msg, &ipc,
-                                          sk->sk_family == AF_INET6);
--              if (unlikely(err < 0)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err < 0))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index c39d304febd3c14475b56b67657c7bedaeb31e4d..32da2cedcb60df7c6f0368c664b9ba257a54502e 100644 (file)
@@ -38,7 +38,6 @@ gen_compile_commands-fix-missing-sys-package.patch
 vhost_net-fix-oob-on-sendmsg-failure.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
 net-dsa-destroy-the-phylink-instance-on-any-error-in-dsa_slave_phy_setup.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 x86-uaccess-fix-32-bit-__get_user_asm_u64-when-cc_has_asm_goto_output-y.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
 selftest-net-fix-typo-in-altname-test.patch
diff --git a/queue-5.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-5.14/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index 3e6d112..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    5 ++---
- 4 files changed, 7 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -279,7 +279,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - sizeof(struct cmsghdr);
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt,
-                                            KERNEL_SOCKPTR(CMSG_DATA(cmsg)),
-                                            err < 40 ? err : 40);
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -727,10 +727,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -562,10 +562,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -1122,10 +1122,9 @@ int udp_sendmsg(struct sock *sk, struct
-               if (err > 0)
-                       err = ip_cmsg_send(sk, msg, &ipc,
-                                          sk->sk_family == AF_INET6);
--              if (unlikely(err < 0)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err < 0))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index 367fc95f66357fa700c1f55efa3299ee069d2435..5a0266d88feee02ba6346750633f3880f810a7a1 100644 (file)
@@ -60,7 +60,6 @@ gen_compile_commands-fix-missing-sys-package.patch
 vhost_net-fix-oob-on-sendmsg-failure.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
 net-dsa-destroy-the-phylink-instance-on-any-error-in-dsa_slave_phy_setup.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 x86-uaccess-fix-32-bit-__get_user_asm_u64-when-cc_has_asm_goto_output-y.patch
 bpf-cgroups-fix-cgroup-v2-fallback-on-v1-v2-mixed-mode.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
diff --git a/queue-5.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch b/queue-5.4/revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
deleted file mode 100644 (file)
index a504e30..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From d7807a9adf4856171f8441f13078c33941df48ab Mon Sep 17 00:00:00 2001
-From: Yajun Deng <yajun.deng@linux.dev>
-Date: Mon, 13 Sep 2021 12:04:42 +0800
-Subject: Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"
-
-From: Yajun Deng <yajun.deng@linux.dev>
-
-commit d7807a9adf4856171f8441f13078c33941df48ab upstream.
-
-This reverts commit 919483096bfe75dda338e98d56da91a263746a0a.
-
-There is only when ip_options_get() return zero need to free.
-It already called kfree() when return error.
-
-Fixes: 919483096bfe ("ipv4: fix memory leaks in ip_cmsg_send() callers")
-Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- net/ipv4/ip_sockglue.c |    2 +-
- net/ipv4/ping.c        |    5 ++---
- net/ipv4/raw.c         |    5 ++---
- net/ipv4/udp.c         |    5 ++---
- 4 files changed, 7 insertions(+), 10 deletions(-)
-
---- a/net/ipv4/ip_sockglue.c
-+++ b/net/ipv4/ip_sockglue.c
-@@ -279,7 +279,7 @@ int ip_cmsg_send(struct sock *sk, struct
-               case IP_RETOPTS:
-                       err = cmsg->cmsg_len - sizeof(struct cmsghdr);
--                      /* Our caller is responsible for freeing ipc->opt */
-+                      /* Our caller is responsible for freeing ipc->opt when err = 0 */
-                       err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg),
-                                            err < 40 ? err : 40);
-                       if (err)
---- a/net/ipv4/ping.c
-+++ b/net/ipv4/ping.c
-@@ -736,10 +736,9 @@ static int ping_v4_sendmsg(struct sock *
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -561,10 +561,9 @@ static int raw_sendmsg(struct sock *sk,
-       if (msg->msg_controllen) {
-               err = ip_cmsg_send(sk, msg, &ipc, false);
--              if (unlikely(err)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err))
-                       goto out;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-       }
---- a/net/ipv4/udp.c
-+++ b/net/ipv4/udp.c
-@@ -1050,10 +1050,9 @@ int udp_sendmsg(struct sock *sk, struct
-               if (err > 0)
-                       err = ip_cmsg_send(sk, msg, &ipc,
-                                          sk->sk_family == AF_INET6);
--              if (unlikely(err < 0)) {
--                      kfree(ipc.opt);
-+              if (unlikely(err < 0))
-                       return err;
--              }
-+
-               if (ipc.opt)
-                       free = 1;
-               connected = 0;
index 09d78d28ce6d4361d1b3b211e734b9429613df10..1ca1f077888e6b3100d07be441847578e13118ef 100644 (file)
@@ -220,7 +220,6 @@ events-reuse-value-read-using-read_once-instead-of-re-reading-it.patch
 vhost_net-fix-oob-on-sendmsg-failure.patch
 net-af_unix-fix-a-data-race-in-unix_dgram_poll.patch
 net-dsa-destroy-the-phylink-instance-on-any-error-in-dsa_slave_phy_setup.patch
-revert-ipv4-fix-memory-leaks-in-ip_cmsg_send-callers.patch
 tcp-fix-tp-undo_retrans-accounting-in-tcp_sacktag_one.patch
 qed-handle-management-fw-error.patch
 dt-bindings-arm-fix-toradex-compatible-typo.patch