The bogon triggers segfault due to NULL dereference. Error out and set
errno to ENOENT; caller uses strerror() in the errmsg.
After fix, loading reproducer results in:
/tmp/A:2:1-18: Error: Could not process rule: No such file or directory
list table inet p
^^^^^^^^^^^^^^^^^^
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org>
if (nft_output_json(&ctx->nft->output))
return do_command_list_json(ctx, cmd);
- if (cmd->handle.table.name != NULL)
+ if (cmd->handle.table.name != NULL) {
table = table_cache_find(&ctx->nft->cache.table_cache,
cmd->handle.table.name,
cmd->handle.family);
+ if (!table) {
+ errno = ENOENT;
+ return -1;
+ }
+ }
+
switch (cmd->obj) {
case CMD_OBJ_TABLE:
if (!cmd->handle.table.name)
--- /dev/null
+table inet p
+list table inet p
+delete table inet p