]> git.ipfire.org Git - thirdparty/nftables.git/commit
src: error reporting with -f and read from stdin
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 2 Jan 2022 20:39:42 +0000 (21:39 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 15 Jan 2022 17:11:22 +0000 (18:11 +0100)
commit5c2b2b0a2ba7c1403c6af3e59dd3f51d04a64645
treebd49b55be7618b302307e808fc7c23e2acb59760
parent8ad4056e9182a03cf160b045532f0569d6b79c22
src: error reporting with -f and read from stdin

Reading from stdin requires to store the ruleset in a buffer so error
reporting works accordingly, eg.

 # cat ruleset.nft | nft -f -
 /dev/stdin:3:13-13: Error: unknown identifier 'x'
                 ip saddr $x
                           ^

The error reporting infrastructure performs a fseek() on the file
descriptor which does not work in this case since the data from the
descriptor has been already consumed.

This patch adds a new stdin input descriptor to perform this special
handling which consists on re-routing this request through the buffer
functions.

Fixes: 935f82e7dd49 ("Support 'nft -f -' to read from stdin")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/nftables.h
src/erec.c
src/libnftables.c
src/scanner.l