mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
batman-adv: Check for alloc errors when preparing TT local data
commitc2d0f48a13upstream. 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:7ea7b4a142("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f03531d091
commit
537e42d759
@@ -2764,7 +2764,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
|
||||
&tvlv_tt_data,
|
||||
&tt_change,
|
||||
&tt_len);
|
||||
if (!tt_len)
|
||||
if (!tt_len || !tvlv_len)
|
||||
goto unlock;
|
||||
|
||||
/* Copy the last orig_node's OGM buffer */
|
||||
@@ -2782,7 +2782,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
|
||||
&tvlv_tt_data,
|
||||
&tt_change,
|
||||
&tt_len);
|
||||
if (!tt_len)
|
||||
if (!tt_len || !tvlv_len)
|
||||
goto out;
|
||||
|
||||
/* fill the rest of the tvlv with the real TT entries */
|
||||
|
||||
Reference in New Issue
Block a user