diff options
Diffstat (limited to 'src/rule.c')
-rw-r--r-- | src/rule.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -332,8 +332,8 @@ struct set *set_clone(const struct set *set) new_set->gc_int = set->gc_int; new_set->timeout = set->timeout; new_set->key = expr_clone(set->key); - new_set->datatype = datatype_get(set->datatype); - new_set->datalen = set->datalen; + if (set->data) + new_set->data = expr_clone(set->data); new_set->objtype = set->objtype; new_set->policy = set->policy; new_set->automerge = set->automerge; @@ -356,7 +356,7 @@ void set_free(struct set *set) expr_free(set->init); handle_free(&set->handle); expr_free(set->key); - set_datatype_destroy(set->datatype); + expr_free(set->data); xfree(set); } @@ -469,7 +469,7 @@ static void set_print_declaration(const struct set *set, nft_print(octx, "%s%stype %s", opts->tab, opts->tab, set->key->dtype->name); if (set_is_datamap(set->flags)) - nft_print(octx, " : %s", set->datatype->name); + nft_print(octx, " : %s", set->data->dtype->name); else if (set_is_objmap(set->flags)) nft_print(octx, " : %s", obj_type_name(set->objtype)); |