Tony Arcieri <basc...@gmail.com> writes:

> On Tue, May 27, 2014 at 12:17 AM, Peter Bex <peter....@xs4all.nl> wrote:
>
>> This is run within the kernel context, and arbitrary code in this bytecode
>> can be uploaded.  It reins in power by allowing only a fixed length for the
>> program and by allowing only jumps to forward addresses, which precludes
>> loop, making it effectively non-Turing complete.
>
>
> What's particularly interesting is extended BPF (eBPF) allows backwards
> jumps, with a catch:
>
> https://lwn.net/Articles/575531/
>
> "Every jump is mapped and, while backward jumps are allowed, jumps to
> previously executed parts of the program are not, so loops should not be
> possible."

The reasoning given in the article seems to be motivated by lazyness:

> The GCC backend is available from a GitHub repository, while the LLVM
> version is in the LLVM tree itself. This feature, incidentally, is why
> extended BPF allows backward jumps: the compilers will emit them as a
> result of their optimization work.

Seems awfully convenient, until suddenly code is harder to reason about.

-- 
Nils Dagsson Moskopp // erlehmann
<http://dieweltistgarnichtso.net>

Attachment: signature.asc
Description: PGP signature

_______________________________________________
langsec-discuss mailing list
langsec-discuss@mail.langsec.org
https://mail.langsec.org/cgi-bin/mailman/listinfo/langsec-discuss

Reply via email to