]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
expr: log: fix missing \0 when sending log prefix to kernel
authorAna Rey <anarey@gmail.com>
Tue, 19 Nov 2013 16:56:18 +0000 (17:56 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 19 Nov 2013 20:04:59 +0000 (21:04 +0100)
If I run my automatic unit test for libnftables, It shows:
"ERROR: Expr NFT_EXPR_LOG_PREFIX mismatches"
a: test
b: test\ 6
       ^^
       garbage

The problem was in nft_rule_expr_log_build function. With
the attached patch, we use mnl_attr_put_strz() instead of
mnl_attr_put_str() as in other functions in the library.

Signed-off-by: Ana Rey <anarey@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/expr/log.c

index 2d3e0cf7f4f377acd12d2d0a5af8b8389dbcf09a..62db2a7fc771387f45dbd06519293815882b368c 100644 (file)
@@ -119,7 +119,7 @@ nft_rule_expr_log_build(struct nlmsghdr *nlh, struct nft_rule_expr *e)
        struct nft_expr_log *log = nft_expr_data(e);
 
        if (e->flags & (1 << NFT_EXPR_LOG_PREFIX))
-               mnl_attr_put_str(nlh, NFTA_LOG_PREFIX, log->prefix);
+               mnl_attr_put_strz(nlh, NFTA_LOG_PREFIX, log->prefix);
        if (e->flags & (1 << NFT_EXPR_LOG_GROUP))
                mnl_attr_put_u16(nlh, NFTA_LOG_GROUP, htons(log->group));
        if (e->flags & (1 << NFT_EXPR_LOG_SNAPLEN))