[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1a6c63d9-321d-95b1-7a7e-9a328092bc99@iogearbox.net>
Date: Fri, 19 Jan 2018 00:33:17 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: Alexei Starovoitov <ast@...com>,
Eric Dumazet <eric.dumazet@...il.com>,
Alexei Starovoitov <ast@...nel.org>, davem@...emloft.net
Cc: edumazet@...gle.com, netdev@...r.kernel.org, kernel-team@...com
Subject: Re: [PATCH bpf] bpf: fix 32-bit divide by zero
On 01/18/2018 11:40 PM, Alexei Starovoitov wrote:
> On 1/18/18 2:30 PM, Eric Dumazet wrote:
>> On Fri, 2018-01-12 at 18:59 -0800, Alexei Starovoitov wrote:
>>> due to some JITs doing if (src_reg == 0) check in 64-bit mode
>>> for div/mod opreations mask upper 32-bits of src register
>>> before doing the check
>>
>> Is the plan to fix JIT, and if they can all be fixed,
>> revert this patch ?
>
> No need to fix JITs.
> I'd rather remove 'cmp rX, 0' from JITs and let verifier emit it.
> It's more generic and gives us flexibility to decide what to do
> with divide by zero and other exceptions.
Yeah, working on this, but patch most likely for the next window.
The 'return 0' is really suboptimal as exception code for some
program types, so I'd like to have struct bpf_verifier_ops to
define such exception return code to be used, so that the verifier
can apply this via bpf insns directly.
Powered by blists - more mailing lists