[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aca27db2-5c16-6bf8-e601-be8b42678cd4@iogearbox.net>
Date: Wed, 1 May 2019 23:44:09 +0200
From: Daniel Borkmann <daniel@...earbox.net>
To: Wang YanQing <udknight@...il.com>, ast@...nel.org,
davem@...emloft.net, kuznet@....inr.ac.ru, tglx@...utronix.de,
netdev@...r.kernel.org, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] bpf, x32: Fix bug for BPF_JMP | {BPF_JSGT, BPF_JSLE,
BPF_JSLT, BPF_JSGE}
On 04/27/2019 10:28 AM, Wang YanQing wrote:
> The current method to compare 64-bit numbers for conditional jump is:
>
> 1) Compare the high 32-bit first.
>
> 2) If the high 32-bit isn't the same, then goto step 4.
>
> 3) Compare the low 32-bit.
>
> 4) Check the desired condition.
>
> This method is right for unsigned comparison, but it is buggy for signed
> comparison, because it does signed comparison for low 32-bit too.
>
> There is only one sign bit in 64-bit number, that is the MSB in the 64-bit
> number, it is wrong to treat low 32-bit as signed number and do the signed
> comparison for it.
>
> This patch fixes the bug and adds a testcase in selftests/bpf for such bug.
>
> Signed-off-by: Wang YanQing <udknight@...il.com>
Applied, thanks!
Powered by blists - more mailing lists