From: Pablo Neira Ayuso Date: Tue, 9 Oct 2018 18:36:36 +0000 (+0200) Subject: extensions: cgroup: fix option parsing for v2 X-Git-Tag: v1.8.1~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ca343624da596313f566147f54d206a24994aae;p=thirdparty%2Fiptables.git extensions: cgroup: fix option parsing for v2 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 --- diff --git a/extensions/libxt_cgroup.c b/extensions/libxt_cgroup.c index d4a29092..327032ea 100644 --- a/extensions/libxt_cgroup.c +++ b/extensions/libxt_cgroup.c @@ -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, }, };