Skip to content

Commit 537e42d

Browse files
ecsvgregkh
authored andcommitted
batman-adv: Check for alloc errors when preparing TT local data
commit c2d0f48a13e53b4747704c9e692f5e765e52041a upstream. batadv_tt_prepare_tvlv_local_data can fail to allocate the memory for the new TVLV block. The caller is informed about this problem with the returned length of 0. Not checking this value results in an invalid memory access when either tt_data or tt_change is accessed. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Fixes: 7ea7b4a ("batman-adv: make the TT CRC logic VLAN specific") Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent f03531d commit 537e42d

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

net/batman-adv/translation-table.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2764,7 +2764,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
27642764
&tvlv_tt_data,
27652765
&tt_change,
27662766
&tt_len);
2767-
if (!tt_len)
2767+
if (!tt_len || !tvlv_len)
27682768
goto unlock;
27692769

27702770
/* Copy the last orig_node's OGM buffer */
@@ -2782,7 +2782,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
27822782
&tvlv_tt_data,
27832783
&tt_change,
27842784
&tt_len);
2785-
if (!tt_len)
2785+
if (!tt_len || !tvlv_len)
27862786
goto out;
27872787

27882788
/* fill the rest of the tvlv with the real TT entries */

0 commit comments

Comments
 (0)