cake_dump_class_stats() closes the TCA_STATS_APP nest with
if (nla_nest_end(d->skb, stats) < 0)
return -1;
nla_nest_end() never returns a negative value: it has a single
`return skb->len;` and no error path (that is why the overflow-aware
nla_nest_end_safe() helper was later added). The '< 0' test can never
be true, so the 'return -1' is unreachable dead code.
Drop the check and close the nest with the bare statement, matching the
sibling cake nests in the same file.
This issue was discovered while fixing a bug on the gate action, see:
https://lore.kernel.org/netdev/QDISC-H19Z.v1.20261001053234@mojatatu.com/ (local)
Conditions to recreate the bug:
- not runtime observable: the issue is found by inspection.
Link: https://lore.kernel.org/netdev/87v77csd5q.fsf@toke.dk/ (local)
Reviewed-by: Victor Nogueira <redacted>
Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
---
v2 -> v3:
- No changes to this patch. Re-sent as part of the series v3; keeps its Reviewed-by and Acked-by tags.
v1 -> v2:
- No changes to this patch. Re-sent as part of the
series v2; it keeps Toke's v1 Acked-by, carried forward.
net/sched/sch_cake.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c
index 4caf9718c9bd..124f552023f8 100644
--- a/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -3211,8 +3211,7 @@ static int cake_dump_class_stats(struct Qdisc *sch, unsigned long cl,
READ_ONCE(flow->cvars.drop_next))));
}
- if (nla_nest_end(d->skb, stats) < 0)
- return -1;
+ nla_nest_end(d->skb, stats);
}
return 0;
--
2.43.0