[CRIU] [PATCH] tcp: disable the repair mode only for sockets of a current process (v3)

Andrey Vagin avagin at openvz.org
Wed Jul 15 04:21:24 PDT 2015


rst_tcp_repair_sockets is filled when all sockets are collected,
but the repair mode should be disabled only for sockets which
are restored in a current process.

https://bugzilla.openvz.org/show_bug.cgi?id=3281

v2: add a comment
v3: typo fix

Fixes: 73e303c8e265 ('rst: Fix rst_tcp_sock memory management')
Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
 sk-tcp.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sk-tcp.c b/sk-tcp.c
index 2b8e278..9f3bf0d 100644
--- a/sk-tcp.c
+++ b/sk-tcp.c
@@ -665,6 +665,13 @@ int rst_tcp_socks_prep(void)
 	list_for_each_entry(ii, &rst_tcp_repair_sockets, rlist) {
 		struct rst_tcp_sock *rs;
 
+		/*
+		 * rst_tcp_repair_sockets contains all sockets, so we need to
+		 * select sockets which restored in a current porcess.
+		 */
+		if (ii->sk_fd == -1)
+			continue;
+
 		rs = rst_mem_alloc(sizeof(*rs), RM_PRIVATE);
 		if (!rs)
 			return -1;
-- 
2.1.0



More information about the CRIU mailing list