On 2023/08/09 6:53, Kees Cook wrote: > > [...] >>> >>> diff --git a/include/uapi/linux/netfilter_bridge/ebtables.h b/include/uapi/linux/netfilter_bridge/ebtables.h >>> index a494cf43a755..b0caad82b693 100644 >>> --- a/include/uapi/linux/netfilter_bridge/ebtables.h >>> +++ b/include/uapi/linux/netfilter_bridge/ebtables.h >>> @@ -182,12 +182,14 @@ struct ebt_entry { >>> unsigned char sourcemsk[ETH_ALEN]; >>> unsigned char destmac[ETH_ALEN]; >>> unsigned char destmsk[ETH_ALEN]; >>> - /* sizeof ebt_entry + matches */ >>> - unsigned int watchers_offset; >>> - /* sizeof ebt_entry + matches + watchers */ >>> - unsigned int target_offset; >>> - /* sizeof ebt_entry + matches + watchers + target */ >>> - unsigned int next_offset; >>> + __struct_group(/* no tag */, offsets, /* no attrs */, >>> + /* sizeof ebt_entry + matches */ >>> + unsigned int watchers_offset; >>> + /* sizeof ebt_entry + matches + watchers */ >>> + unsigned int target_offset; >>> + /* sizeof ebt_entry + matches + watchers + target */ >>> + unsigned int next_offset; >>> + ); >>> unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); > > While we're here, can we drop this [0] in favor of []? > > -Kees > Look like it could be done. Will do in v3. Thanks! >>> }; >>> >>> diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c >>> index 757ec46fc45a..5ec66b1ebb64 100644 >>> --- a/net/bridge/netfilter/ebtables.c >>> +++ b/net/bridge/netfilter/ebtables.c >>> @@ -2115,8 +2115,7 @@ static int size_entry_mwt(const struct ebt_entry *entry, const unsigned char *ba >>> return ret; >>> >>> offsets[0] = sizeof(struct ebt_entry); /* matches come first */ >>> - memcpy(&offsets[1], &entry->watchers_offset, >>> - sizeof(offsets) - sizeof(offsets[0])); >>> + memcpy(&offsets[1], &entry->offsets, sizeof(offsets) - sizeof(offsets[0])); >> ^^^^^^^^^^^^ >> You now can replace this ____________________________________| >> with just `sizeof(entry->offsets)` >> >> With that change you can add my >> Reviewed-by: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx> >> >> Thank you >> -- >> Gustavo >> >>> >>> if (state->buf_kern_start) { >>> buf_start = state->buf_kern_start + state->buf_kern_offset; >>> -- >>> 2.41.0 >>> > >