netfilter: nf_tables: fix possible null-pointer dereference in object update
authorFernando Fernandez Mancera <ffmancera@riseup.net>
Wed, 4 Sep 2019 12:29:07 +0000 (14:29 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 5 Sep 2019 11:40:27 +0000 (13:40 +0200)
Not all objects have an update operation. If the object type doesn't
implement an update operation and the user tries to update it will hit
EOPNOTSUPP.

Fixes: d62d0ba97b58 ("netfilter: nf_tables: Introduce stateful object update operation")
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index cf767bc58e1881cf9f71f775c7daab31d9565d6a..013d28899cabc1f0228bb5d538610f31ea240a9c 100644 (file)
@@ -5140,6 +5140,9 @@ static int nf_tables_updobj(const struct nft_ctx *ctx,
        struct nft_trans *trans;
        int err;
 
+       if (!obj->ops->update)
+               return -EOPNOTSUPP;
+
        trans = nft_trans_alloc(ctx, NFT_MSG_NEWOBJ,
                                sizeof(struct nft_trans_obj));
        if (!trans)