From: Tom Rix <[email protected]>
The setting ct and ctinfo are controlled by
CONF_NF_CONNTRACK. So their use should also
be controlled.
Signed-off-by: Tom Rix <[email protected]>
---
net/netfilter/nfnetlink_log.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index d97eb280cb2e8..141e0ebf4bc23 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -629,9 +629,11 @@ __build_packet_message(struct nfnl_log_net *log,
htonl(atomic_inc_return(&log->global_seq))))
goto nla_put_failure;
+#if IS_ENABLED(CONFIG_NF_CONNTRACK)
if (ct && nfnl_ct->build(inst->skb, ct, ctinfo,
NFULA_CT, NFULA_CT_INFO) < 0)
goto nla_put_failure;
+#endif
if ((pf == NFPROTO_NETDEV || pf == NFPROTO_BRIDGE) &&
nfulnl_put_bridge(inst, skb) < 0)
--
2.26.3
[email protected] <[email protected]> wrote:
> From: Tom Rix <[email protected]>
>
> The setting ct and ctinfo are controlled by
> CONF_NF_CONNTRACK. So their use should also
> be controlled.
Any reason for this change?
We try to avoid ifdef where possible, unless it avoids a compiler
warning/build/linker issue.
This doesn't change generated code for me (NF_CONNTRACK=n) either.
Tom Rix <[email protected]> wrote:
>
> On 3/7/22 4:46 AM, Florian Westphal wrote:
> > [email protected] <[email protected]> wrote:
> > > From: Tom Rix <[email protected]>
> > >
> > > The setting ct and ctinfo are controlled by
> > > CONF_NF_CONNTRACK. So their use should also
> > > be controlled.
> > Any reason for this change?
>
> Define and use are connected. Doing something to one without doing something
> to the other doesn't make sense.
We often rely on compiler to remove branches that always evaluate to
false, just like in this case.
> Could removing the CONF_NF_CONNTRACK be done for the define side ?
Doubt it. Looking at git history it avoids build breakage.
On 3/7/22 4:46 AM, Florian Westphal wrote:
> [email protected] <[email protected]> wrote:
>> From: Tom Rix <[email protected]>
>>
>> The setting ct and ctinfo are controlled by
>> CONF_NF_CONNTRACK. So their use should also
>> be controlled.
> Any reason for this change?
Define and use are connected. Doing something to one without doing
something to the other doesn't make sense.
Could removing the CONF_NF_CONNTRACK be done for the define side ?
Tom
> We try to avoid ifdef where possible, unless it avoids a compiler
> warning/build/linker issue.
>
> This doesn't change generated code for me (NF_CONNTRACK=n) either.
>