]> granicus.if.org Git - ipset/commitdiff
kernel: uapi: fix MARKMASK attr ABI breakage
authorFlorian Westphal <fw@strlen.de>
Thu, 13 Feb 2014 11:40:59 +0000 (12:40 +0100)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Fri, 14 Feb 2014 08:22:09 +0000 (09:22 +0100)
commit 2dfb973c0dcc6d2211 (add markmask for hash:ip,mark data type)
inserted IPSET_ATTR_MARKMASK in-between other enum values, i.e.
changing values of all further attributes.  This causes 'ipset list'
segfault on existing kernels since ipset no longer finds
IPSET_ATTR_MEMSIZE (it has a different value on kernel side).

Jozsef points out it should be moved below IPSET_ATTR_MARK which
works since there is some extra reserved space after that value.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
include/libipset/linux_ip_set.h
kernel/include/uapi/linux/netfilter/ipset/ip_set.h

index 590e3939c5e1d7f0a6d3e85d0599796933f7b502..b8cc49336ba4bc09a7d3317103a2b2a0cd44fb3d 100644 (file)
@@ -84,13 +84,13 @@ enum {
        IPSET_ATTR_CADT_FLAGS,  /* 8 */
        IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO,     /* 9 */
        IPSET_ATTR_MARK,        /* 10 */
+       IPSET_ATTR_MARKMASK,    /* 11 */
        /* Reserve empty slots */
        IPSET_ATTR_CADT_MAX = 16,
        /* Create-only specific attributes */
        IPSET_ATTR_GC,
        IPSET_ATTR_HASHSIZE,
        IPSET_ATTR_MAXELEM,
-       IPSET_ATTR_MARKMASK,
        IPSET_ATTR_NETMASK,
        IPSET_ATTR_PROBES,
        IPSET_ATTR_RESIZE,
@@ -140,7 +140,6 @@ enum ipset_errno {
        IPSET_ERR_EXIST,
        IPSET_ERR_INVALID_CIDR,
        IPSET_ERR_INVALID_NETMASK,
-       IPSET_ERR_INVALID_MARKMASK,
        IPSET_ERR_INVALID_FAMILY,
        IPSET_ERR_TIMEOUT,
        IPSET_ERR_REFERENCED,
@@ -148,6 +147,7 @@ enum ipset_errno {
        IPSET_ERR_IPADDR_IPV6,
        IPSET_ERR_COUNTER,
        IPSET_ERR_COMMENT,
+       IPSET_ERR_INVALID_MARKMASK,
 
        /* Type specific error codes */
        IPSET_ERR_TYPE_SPECIFIC = 4352,
index 590e3939c5e1d7f0a6d3e85d0599796933f7b502..b8cc49336ba4bc09a7d3317103a2b2a0cd44fb3d 100644 (file)
@@ -84,13 +84,13 @@ enum {
        IPSET_ATTR_CADT_FLAGS,  /* 8 */
        IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO,     /* 9 */
        IPSET_ATTR_MARK,        /* 10 */
+       IPSET_ATTR_MARKMASK,    /* 11 */
        /* Reserve empty slots */
        IPSET_ATTR_CADT_MAX = 16,
        /* Create-only specific attributes */
        IPSET_ATTR_GC,
        IPSET_ATTR_HASHSIZE,
        IPSET_ATTR_MAXELEM,
-       IPSET_ATTR_MARKMASK,
        IPSET_ATTR_NETMASK,
        IPSET_ATTR_PROBES,
        IPSET_ATTR_RESIZE,
@@ -140,7 +140,6 @@ enum ipset_errno {
        IPSET_ERR_EXIST,
        IPSET_ERR_INVALID_CIDR,
        IPSET_ERR_INVALID_NETMASK,
-       IPSET_ERR_INVALID_MARKMASK,
        IPSET_ERR_INVALID_FAMILY,
        IPSET_ERR_TIMEOUT,
        IPSET_ERR_REFERENCED,
@@ -148,6 +147,7 @@ enum ipset_errno {
        IPSET_ERR_IPADDR_IPV6,
        IPSET_ERR_COUNTER,
        IPSET_ERR_COMMENT,
+       IPSET_ERR_INVALID_MARKMASK,
 
        /* Type specific error codes */
        IPSET_ERR_TYPE_SPECIFIC = 4352,