Hi Pablo, On Fri, Jun 11, 2021 at 07:15:38PM +0200, Pablo Neira Ayuso wrote: > Perform the table and set lookup only for non-anonymous sets, where the > incremental cache update is required. > > The problem fixed by 7aa08d45031e ("evaluate: Perform set evaluation on > implicitly declared (anonymous) sets") resurrected after the cache > rework. > > # nft add rule x y tcp sport . tcp dport vmap { ssh . 0-65535 : accept, 0-65535 . ssh : accept } > BUG: invalid range expression type concat > nft: expression.c:1422: range_expr_value_low: Assertion `0' failed. > Abort > > Add a test case to make sure this does not happen again. > > Fixes: 5ec5c706d993 ("cache: add hashtable cache for table") > Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> This triggers a warning: evaluate.c: In function 'set_evaluate': evaluate.c:3870:13: warning: 'table' may be used uninitialized in this function [-Wmaybe-uninitialized] 3870 | if (set_cache_find(table, set->handle.set.name) == NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cheers, Phil