Skip to content

Commit f6de68e

Browse files
ummakynesgregkh
authored andcommitted
netfilter: nf_tables: bail out if stateful expression provides no .clone
commit 3c13725 upstream. All existing NFT_EXPR_STATEFUL provide a .clone interface, remove fallback to copy content of stateful expression since this is never exercised and bail out if .clone interface is not defined. Stable-dep-of: fa23e0d ("netfilter: nf_tables: allow clone callbacks to sleep") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7fa2e29 commit f6de68e

1 file changed

Lines changed: 7 additions & 8 deletions

File tree

net/netfilter/nf_tables_api.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3336,14 +3336,13 @@ int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src)
33363336
{
33373337
int err;
33383338

3339-
if (src->ops->clone) {
3340-
dst->ops = src->ops;
3341-
err = src->ops->clone(dst, src);
3342-
if (err < 0)
3343-
return err;
3344-
} else {
3345-
memcpy(dst, src, src->ops->size);
3346-
}
3339+
if (WARN_ON_ONCE(!src->ops->clone))
3340+
return -EINVAL;
3341+
3342+
dst->ops = src->ops;
3343+
err = src->ops->clone(dst, src);
3344+
if (err < 0)
3345+
return err;
33473346

33483347
__module_get(src->ops->type->owner);
33493348

0 commit comments

Comments
 (0)