diff options
author | Phil Sutter <phil@nwl.cc> | 2017-11-20 16:54:04 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-11-22 13:18:34 +0100 |
commit | 1be5e6f808e3908ecd13ab68b3fea0739794f02d (patch) | |
tree | 1ea3cc4470d41229a04662536746fd6b95773753 /src/rule.c | |
parent | f7828416525122914ccb2fa3b5bf2230fbce9c7d (diff) |
libnftables: Ensure output_fp is never NULL
Initialize output_fp to 'stdout' upon context creation and check output
stream validity in nft_ctx_set_output(). This allows to drop checks in
nft_{gmp_,}print() and do_command_export(). While doing so for the
latter, simplify it a bit by using nft_print() which takes care of
flushing the output stream.
If applications desire to drop all output, they are supposed to open
/dev/null and assign that.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/rule.c')
-rw-r--r-- | src/rule.c | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -1153,9 +1153,6 @@ static int do_command_export(struct netlink_ctx *ctx, struct cmd *cmd) struct nftnl_ruleset *rs; FILE *fp = ctx->octx->output_fp; - if (!fp) - return 0; - do { rs = netlink_dump_ruleset(ctx, &cmd->handle, &cmd->location); if (rs == NULL && errno != EINTR) @@ -1163,8 +1160,7 @@ static int do_command_export(struct netlink_ctx *ctx, struct cmd *cmd) } while (rs == NULL); nftnl_ruleset_fprintf(fp, rs, cmd->export->format, 0); - fprintf(fp, "\n"); - fflush(fp); + nft_print(ctx->octx, "\n"); nftnl_ruleset_free(rs); return 0; |