]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
iplink_bond: fix parameter value matching
authorMichal Kubeček <mkubecek@suse.cz>
Thu, 13 Feb 2014 16:31:59 +0000 (17:31 +0100)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 17 Feb 2014 18:58:56 +0000 (10:58 -0800)
Lookup function get_index() compares argument with table entries
only up to the length of the table entry so that if an entry
with lower index is a substring of a later one, earlier entry is
used even if the argument is equal to the other. For example,

  ip link set bond0 type bond xmit_hash_policy layer2+3

sets xmit_hash_policy to 0 (layer2) as this is found before
"layer2+3" can be checked.

Use strcmp() to compare whole strings instead.

v2: look for an exact match only

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
ip/iplink_bond.c

index f22151e2e9dce628b6c99148dd16edeb8d4e222e..7a950df9679726b3a8867a71b007f7b220e0d87d 100644 (file)
@@ -106,7 +106,7 @@ static int get_index(const char **tbl, char *name)
                                return i;
 
        for (i = 0; tbl[i]; i++)
-               if (strncmp(tbl[i], name, strlen(tbl[i])) == 0)
+               if (strcmp(tbl[i], name) == 0)
                        return i;
 
        return -1;