netfilter: nft_log: restrict the log prefix length to 127
authorLiping Zhang <zlpnobody@gmail.com>
Sun, 22 Jan 2017 14:10:32 +0000 (22:10 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 24 Jan 2017 20:46:29 +0000 (21:46 +0100)
commit5ce6b04ce96896e8a79e6f60740ced911eaac7a4
treeb975e60eb3ab49d2fc1225abe615238325a61ed5
parentb2fbd04498789def80ceba3d5bbc5af7f2f70a5f
netfilter: nft_log: restrict the log prefix length to 127

First, log prefix will be truncated to NF_LOG_PREFIXLEN-1, i.e. 127,
at nf_log_packet(), so the extra part is useless.

Second, after adding a log rule with a very very long prefix, we will
fail to dump the nft rules after this _special_ one, but acctually,
they do exist. For example:
  # name_65000=$(printf "%0.sQ" {1..65000})
  # nft add rule filter output log prefix "$name_65000"
  # nft add rule filter output counter
  # nft add rule filter output counter
  # nft list chain filter output
  table ip filter {
      chain output {
          type filter hook output priority 0; policy accept;
      }
  }

So now, restrict the log prefix length to NF_LOG_PREFIXLEN-1.

Fixes: 96518518cc41 ("netfilter: add nftables")
Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/uapi/linux/netfilter/nf_log.h
net/netfilter/nf_log.c
net/netfilter/nft_log.c