* [Question] Dead code in xt_register_matches/targets()?
@ 2026-01-31 14:55 Ingyu Jang
2026-01-31 17:33 ` Jan Engelhardt
2026-01-31 21:34 ` Florian Westphal
0 siblings, 2 replies; 3+ messages in thread
From: Ingyu Jang @ 2026-01-31 14:55 UTC (permalink / raw)
To: netfilter-devel; +Cc: pablo, fw, phil, Ingyu Jang
Hi,
I noticed that in net/netfilter/x_tables.c, the functions
xt_register_match() and xt_register_target() always return 0.
Both functions simply perform:
- mutex_lock()
- list_add()
- mutex_unlock()
- return 0
However, xt_register_matches() and xt_register_targets() check
the return values and have error handling paths:
for (i = 0; i < n; i++) {
err = xt_register_match(&match[i]);
if (err)
goto err;
}
Since xt_register_match/target() never fail, these error checks
appear to be dead code.
I found multiple callers that check these return values:
- net/netfilter/xt_set.c
- net/netfilter/xt_MASQUERADE.c
- and others
Is this intentional defensive coding for potential future changes,
or could this be cleaned up by making xt_register_match/target()
return void?
Thanks,
Ingyu Jang
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [Question] Dead code in xt_register_matches/targets()?
2026-01-31 14:55 [Question] Dead code in xt_register_matches/targets()? Ingyu Jang
@ 2026-01-31 17:33 ` Jan Engelhardt
2026-01-31 21:34 ` Florian Westphal
1 sibling, 0 replies; 3+ messages in thread
From: Jan Engelhardt @ 2026-01-31 17:33 UTC (permalink / raw)
To: Ingyu Jang; +Cc: netfilter-devel, pablo, fw, phil
On Saturday 2026-01-31 15:55, Ingyu Jang wrote:
>I noticed that in net/netfilter/x_tables.c, the functions
>xt_register_match() and xt_register_target() always return 0.
See commit 7926dbfa4bc14e27f4e18a6184a031a1c1e077dc
and the state prior.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Question] Dead code in xt_register_matches/targets()?
2026-01-31 14:55 [Question] Dead code in xt_register_matches/targets()? Ingyu Jang
2026-01-31 17:33 ` Jan Engelhardt
@ 2026-01-31 21:34 ` Florian Westphal
1 sibling, 0 replies; 3+ messages in thread
From: Florian Westphal @ 2026-01-31 21:34 UTC (permalink / raw)
To: Ingyu Jang; +Cc: netfilter-devel, pablo, phil
Ingyu Jang <ingyujang25@korea.ac.kr> wrote:
> I noticed that in net/netfilter/x_tables.c, the functions
> xt_register_match() and xt_register_target() always return 0.
>
> Both functions simply perform:
> - mutex_lock()
> - list_add()
> - mutex_unlock()
> - return 0
>
> However, xt_register_matches() and xt_register_targets() check
> the return values and have error handling paths:
>
> for (i = 0; i < n; i++) {
> err = xt_register_match(&match[i]);
> if (err)
> goto err;
> }
>
> Since xt_register_match/target() never fail, these error checks
> appear to be dead code.
>
> I found multiple callers that check these return values:
> - net/netfilter/xt_set.c
> - net/netfilter/xt_MASQUERADE.c
> - and others
>
> Is this intentional defensive coding for potential future changes,
No, leftover. It could be cleaned up but I would prefer to keep it
as-is, x_tables is in maintenance mode.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-01-31 21:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-31 14:55 [Question] Dead code in xt_register_matches/targets()? Ingyu Jang
2026-01-31 17:33 ` Jan Engelhardt
2026-01-31 21:34 ` Florian Westphal
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.