• Yotam Gigi's avatar
    act_ife: Fix false encoding · c006da0b
    Yotam Gigi authored
    On ife encode side, the action stores the different tlvs inside the ife
    header, where each tlv length field should refer to the length of the
    whole tlv (without additional padding) and not just the data length.
    
    On ife decode side, the action iterates over the tlvs in the ife header
    and parses them one by one, where in each iteration the current pointer is
    advanced according to the tlv size.
    
    Before, the encoding encoded only the data length inside the tlv, which led
    to false parsing of ife the header. In addition, due to the fact that the
    loop counter was unsigned, it could lead to infinite parsing loop.
    
    This fix changes the loop counter to be signed and fixes the encoding to
    take into account the tlv type and size.
    
    Fixes: 28a10c42 ("net sched: fix encoding to use real length")
    Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: default avatarYotam Gigi <yotamg@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c006da0b
act_ife.c 19.7 KB