]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
extensions: cgroup: fix option parsing for v2
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 9 Oct 2018 18:36:36 +0000 (20:36 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 9 Oct 2018 18:36:36 +0000 (20:36 +0200)
Structure layout is different, therefore a new struct xt_option_entry is
needed.

Fixes: f9efc8cb79c0 ("extensions: add cgroup revision 2")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
extensions/libxt_cgroup.c

index d4a29092cd47b620d8c4410d530ce2ecd73e8447..327032eaae5160b43336ca348434338cef95fba0 100644 (file)
@@ -51,6 +51,24 @@ static const struct xt_option_entry cgroup_opts_v1[] = {
        XTOPT_TABLEEND,
 };
 
+static const struct xt_option_entry cgroup_opts_v2[] = {
+       {
+               .name = "path",
+               .id = O_PATH,
+               .type = XTTYPE_STRING,
+               .flags = XTOPT_INVERT | XTOPT_PUT,
+               XTOPT_POINTER(struct xt_cgroup_info_v2, path)
+       },
+       {
+               .name = "cgroup",
+               .id = O_CLASSID,
+               .type = XTTYPE_UINT32,
+               .flags = XTOPT_INVERT | XTOPT_PUT,
+               XTOPT_POINTER(struct xt_cgroup_info_v2, classid)
+       },
+       XTOPT_TABLEEND,
+};
+
 static void cgroup_parse_v0(struct xt_option_call *cb)
 {
        struct xt_cgroup_info_v0 *cgroupinfo = cb->data;
@@ -249,7 +267,7 @@ static struct xtables_match cgroup_match[] = {
                .print          = cgroup_print_v2,
                .save           = cgroup_save_v2,
                .x6_parse       = cgroup_parse_v2,
-               .x6_options     = cgroup_opts_v1,
+               .x6_options     = cgroup_opts_v2,
                .xlate          = cgroup_xlate_v2,
        },
 };