diff options
-rw-r--r-- | src/evaluate.c | 3 | ||||
-rw-r--r-- | src/netlink.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index cebf7cb8..8105d8d5 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -3787,6 +3787,9 @@ static int set_evaluate(struct eval_ctx *ctx, struct set *set) set->key->byteorder, set->key->len, 0); if (expr_evaluate(ctx, &set->init) < 0) return -1; + if (set->init->etype != EXPR_SET) + return expr_error(ctx->msgs, set->init, "Set %s: Unexpected initial type %s, missing { }?", + set->handle.set.name, expr_name(set->init)); } ctx->set = NULL; diff --git a/src/netlink.c b/src/netlink.c index 103fdbd1..97ae88c7 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -120,6 +120,9 @@ static struct nftnl_set_elem *alloc_nftnl_setelem(const struct expr *set, } else { elem = expr; } + if (elem->etype != EXPR_SET_ELEM) + BUG("Unexpected expression type: got %d\n", elem->etype); + key = elem->key; netlink_gen_data(key, &nld); |