• Xi Wang's avatar
    arm64: bpf: fix signedness bug in loading 64-bit immediate · 1e4df6b7
    Xi Wang authored
    Consider "(u64)insn1.imm << 32 | imm" in the arm64 JIT.  Since imm is
    signed 32-bit, it is sign-extended to 64-bit, losing the high 32 bits.
    The fix is to convert imm to u32 first, which will be zero-extended to
    u64 implicitly.
    
    Cc: Zi Shen Lim <zlim.lnx@gmail.com>
    Cc: Alexei Starovoitov <ast@plumgrid.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: <stable@vger.kernel.org>
    Fixes: 30d3d94c ("arm64: bpf: add 'load 64-bit immediate' instruction")
    Signed-off-by: default avatarXi Wang <xi.wang@gmail.com>
    [will: removed non-arm64 bits and redundant casting]
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    1e4df6b7
bpf_jit_comp.c 18.5 KB