Skip to content

Commit ced1a2b

Browse files
Yang Yangopsiff
authored andcommitted
batman-adv: avoid OGM aggregation when skb tailroom is insufficient
commit 0d4aef630be9d5f9c1227d07669c26c4383b5ad0 upstream. When OGM aggregation state is toggled at runtime, an existing forwarded packet may have been allocated with only packet_len bytes, while a later packet can still be selected for aggregation. Appending in this case can hit skb_put overflow conditions. Reject aggregation when the target skb tailroom cannot accommodate the new packet. The caller then falls back to creating a new forward packet instead of appending. Fixes: c6c8fea ("net: Add batman-adv meshing protocol") Cc: stable@vger.kernel.org Reported-by: Yifan Wu <yifanwucs@gmail.com> Reported-by: Juefei Pu <tomapufckgml@gmail.com> Signed-off-by: Yuan Tan <tanyuan98@outlook.com> Signed-off-by: Xin Liu <bird@lzu.edu.cn> Signed-off-by: Ao Zhou <n05ec@lzu.edu.cn> Signed-off-by: Yang Yang <n05ec@lzu.edu.cn> Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> [ Adjust context ] Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 1ada20331f2df2a942d6b83ae1f04a304b642e2a) Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
1 parent c422c8c commit ced1a2b

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

net/batman-adv/bat_iv_ogm.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,9 @@ batadv_iv_ogm_can_aggregate(const struct batadv_ogm_packet *new_bat_ogm_packet,
464464
!time_after_eq(aggregation_end_time, forw_packet->send_time))
465465
return false;
466466

467+
if (skb_tailroom(forw_packet->skb) < packet_len)
468+
return false;
469+
467470
if (aggregated_bytes > BATADV_MAX_AGGREGATION_BYTES)
468471
return false;
469472

0 commit comments

Comments
 (0)