[CRIU] [PATCH ] net: Drop @ri test but use known ARRA_SIZE

Cyrill Gorcunov gorcunov at gmail.com
Tue May 5 07:10:40 PDT 2015


On Tue, May 05, 2015 at 05:04:20PM +0300, Andrew Vagin wrote:
> > 
> > 1-3 applied
> 
> 00:04:15.713 Test: zdtm/live/static/netns-dev, Result: FAIL

Andrew, could you please give this one a shot.
-------------- next part --------------
>From e81b3626de082992dbf231b79996dfa329b65a40 Mon Sep 17 00:00:00 2001
From: Cyrill Gorcunov <gorcunov at openvz.org>
Date: Tue, 5 May 2015 17:09:26 +0300
Subject: [PATCH] net: Drop @ri test but use known ARRA_SIZE

We might miss entry in "ri ? ri - 1" expression when ri = 1.
Lets use known array size instead.

For some reason it didn't trigger on my tests earlier.

Reported-by: Andrew Vagin <avagin at odin.com>
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 net.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/net.c b/net.c
index fb64d2ebfb62..034793029eb2 100644
--- a/net.c
+++ b/net.c
@@ -79,7 +79,6 @@ static char *devconfs[] = {
 	"shared_media",
 	"src_valid_mark",
 	"tag",
-	NULL,
 };
 
 #define NET_CONF_PATH "net/ipv4/conf"
@@ -89,10 +88,10 @@ static int ipv4_conf_op(char *tgt, int *conf, int op, NetnsEntry **netns)
 {
 	int i, ri;
 	int ret;
-	struct sysctl_req req[ARRAY_SIZE(devconfs) + 1];
+	struct sysctl_req req[ARRAY_SIZE(devconfs)];
 	char path[ARRAY_SIZE(devconfs)][MAX_CONF_OPT_PATH];
 
-	for (i = 0, ri = 0; devconfs[i]; i++) {
+	for (i = 0, ri = 0; i < ARRAY_SIZE(devconfs); i++) {
 		/*
 		 * If dev conf value is the same as default skip restoring it
 		 */
@@ -107,9 +106,8 @@ static int ipv4_conf_op(char *tgt, int *conf, int op, NetnsEntry **netns)
 		req[ri].type = CTL_32;
 		ri++;
 	}
-	req[ri].name = NULL;
 
-	ret = sysctl_op(req, ri ? ri - 1 : 0, op);
+	ret = sysctl_op(req, ri, op);
 	if (ret < 0) {
 		pr_err("Failed to %s %s/<confs>\n", (op == CTL_READ)?"read":"write", tgt);
 		return -1;
-- 
2.1.0



More information about the CRIU mailing list