]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
batman-adv: tt: fix negative tt_buff_len
authorSven Eckelmann <sven@narfation.org>
Sat, 2 May 2026 17:53:21 +0000 (19:53 +0200)
committerSven Eckelmann <sven@narfation.org>
Tue, 12 May 2026 06:33:52 +0000 (08:33 +0200)
commitb64963a2ceeb7529310b6cf253a1e540784422f4
tree65422c4ec9bd6adc146b182619631091c04ff392
parent1e9fab756f8395096d5bba7be0c373c4c8f5d165
batman-adv: tt: fix negative tt_buff_len

batadv_orig_node::tt_buff_len was declared as s16, but the field is never
intended to hold a negative value. When a value greater than 32767 is
assigned, it wraps to a negative signed integer.

In batadv_send_other_tt_response(), tt_buff_len is temporarily widened to
s32. The incorrectly negative s16 value propagates into the s32, causing
batadv_tt_prepare_tvlv_global_data() to allocate a full sized buffer but
populates only a small portion of it with the collected changeset. All
remaining bits are kept uninitialized.

Using an u16 avoids this type confusion and ensures that no (negative) sign
extension is performed in batadv_send_other_tt_response().

Cc: stable@kernel.org
Fixes: a73105b8d4c7 ("batman-adv: improved client announcement mechanism")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
net/batman-adv/types.h