• S
    batman-adv: Only read OGM2 tvlv_len after buffer len check · 0ff0f15a
    Sven Eckelmann 提交于
    Multiple batadv_ogm2_packet can be stored in an skbuff. The functions
    batadv_v_ogm_send_to_if() uses batadv_v_ogm_aggr_packet() to check if there
    is another additional batadv_ogm2_packet in the skb or not before they
    continue processing the packet.
    
    The length for such an OGM2 is BATADV_OGM2_HLEN +
    batadv_ogm2_packet->tvlv_len. The check must first check that at least
    BATADV_OGM2_HLEN bytes are available before it accesses tvlv_len (which is
    part of the header. Otherwise it might try read outside of the currently
    available skbuff to get the content of tvlv_len.
    
    Fixes: 9323158e ("batman-adv: OGMv2 - implement originators logic")
    Signed-off-by: NSven Eckelmann <sven@narfation.org>
    Signed-off-by: NSimon Wunderlich <sw@simonwunderlich.de>
    0ff0f15a
bat_v_ogm.c 27.0 KB