Re: [PATCH iptables] libxt_cgroup2: add support for cgroup2 path matching

From: Jan Engelhardt
Date: Tue Nov 17 2015 - 18:02:11 EST

On Tuesday 2015-11-17 20:42, Tejun Heo wrote:
>+static void cgroup2_save(const void *ip, const struct xt_entry_match *match)
>+ const struct xt_cgroup2_info *info = (void *)match->data;
>+ printf("%s --path %s", info->invert ? " !" : "", info->path);

Can cgroup path names contain anything fancy, like spaces, backslashes, etc.?
If so, xtables_save_string() will be needed here.

>+static struct xtables_match cgroup2_match = {
>+ .family = NFPROTO_UNSPEC,
>+ .name = "cgroup2",
>+ .version = XTABLES_VERSION,
>+ .size = XT_ALIGN(sizeof(struct xt_cgroup2_info)),
>+ .userspacesize = XT_ALIGN(sizeof(struct xt_cgroup2_info)),

userspacesize must not include xt_cgroup2_info.priv.
Change to offsetof(...), cf. other .c modules which do this.

>+++ b/extensions/
>@@ -0,0 +1,24 @@
>+[\fB!\fP] \fB\-\-path\fP \fIpath\fP
>+Match cgroup2 membership.
>+Each socket is associated with the v2 cgroup of the creating process.
>+This matches packets coming from or going to all sockets in the
>+sub-hierarchy of the specified path. The path should be relative to
>+the root of the cgroup2 hierarchy. Can be used in the OUTPUT and
>+INPUT chains to assign particular firewall policies for aggregated
>+processes on the system. This allows for more fine-grained firewall
>+policies that only match for a subset of the system's processes.
>+\fBIMPORTANT\fP: when being used in the INPUT chain, the cgroup2
>+matcher is currently only of limited functionality, meaning it
>+will only match on packets that are processed for local sockets
>+through early socket demuxing. Therefore, general usage on the
>+INPUT chain is disadviced unless the implications are well

is disadviced (sic) -> is not advised
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at