Skip to content

Commit

Permalink
netfilter: conntrack: prefer tcp_error_log to pr_debug
Browse files Browse the repository at this point in the history
pr_debug doesn't provide any information other than that a packet
did not match existing state but also was found to not create a new
connection.

Replaces this with tcp_error_log, which will also dump packets'
content so one can see if this is a stray FIN or RST.

Signed-off-by: Florian Westphal <fw@strlen.de>
  • Loading branch information
Florian Westphal committed Oct 10, 2023
1 parent 8a23f4a commit 6ac9c51
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions net/netfilter/nf_conntrack_proto_tcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -835,7 +835,8 @@ static bool tcp_error(const struct tcphdr *th,

static noinline bool tcp_new(struct nf_conn *ct, const struct sk_buff *skb,
unsigned int dataoff,
const struct tcphdr *th)
const struct tcphdr *th,
const struct nf_hook_state *state)
{
enum tcp_conntrack new_state;
struct net *net = nf_ct_net(ct);
Expand All @@ -846,7 +847,7 @@ static noinline bool tcp_new(struct nf_conn *ct, const struct sk_buff *skb,

/* Invalid: delete conntrack */
if (new_state >= TCP_CONNTRACK_MAX) {
pr_debug("nf_ct_tcp: invalid new deleting.\n");
tcp_error_log(skb, state, "invalid new");
return false;
}

Expand Down Expand Up @@ -980,7 +981,7 @@ int nf_conntrack_tcp_packet(struct nf_conn *ct,
if (tcp_error(th, skb, dataoff, state))
return -NF_ACCEPT;

if (!nf_ct_is_confirmed(ct) && !tcp_new(ct, skb, dataoff, th))
if (!nf_ct_is_confirmed(ct) && !tcp_new(ct, skb, dataoff, th, state))
return -NF_ACCEPT;

spin_lock_bh(&ct->lock);
Expand Down

0 comments on commit 6ac9c51

Please sign in to comment.