• Nicolas Schichan's avatar
    ARM: net: fix condition for load_order > 0 when translating load instructions. · 7aed35cb
    Nicolas Schichan authored
    To check whether the load should take the fast path or not, the code
    would check that (r_skb_hlen - load_order) is greater than the offset
    of the access using an "Unsigned higher or same" condition. For
    halfword accesses and an skb length of 1 at offset 0, that test is
    valid, as we end up comparing 0xffffffff(-1) and 0, so the fast path
    is taken and the filter allows the load to wrongly succeed. A similar
    issue exists for word loads at offset 0 and an skb length of less than
    4.
    
    Fix that by using the condition "Signed greater than or equal"
    condition for the fast path code for load orders greater than 0.
    Signed-off-by: default avatarNicolas Schichan <nschichan@freebox.fr>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7aed35cb
bpf_jit_32.c 24.5 KB