On 08/23/2017 04:09 PM, Edward Cree wrote:
Writes in straight-line code should not prevent reads from propagating
  along jumps.  With current verifier code, the jump from 3 to 5 does not
  add a read mark on 3:R0 (because 5:R0 has a write mark), meaning that
  the jump from 1 to 3 gets pruned as safe even though R0 is NOT_INIT.

Verifier output:
0: (61) r2 = *(u32 *)(r1 +0)
1: (35) if r2 >= 0x0 goto pc+1
  R1=ctx(id=0,off=0,imm=0) R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 
0xffffffff)) R10=fp0
2: (b7) r0 = 0
3: (35) if r2 >= 0x0 goto pc+1
  R0=inv0 R1=ctx(id=0,off=0,imm=0) 
R2=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R10=fp0
4: (b7) r0 = 0
5: (95) exit

from 3 to 5: safe

from 1 to 3: safe
processed 8 insns, stack depth 0

Signed-off-by: Edward Cree <ec...@solarflare.com>

Acked-by: Daniel Borkmann <dan...@iogearbox.net>
_______________________________________________
iovisor-dev mailing list
iovisor-dev@lists.iovisor.org
https://lists.iovisor.org/mailman/listinfo/iovisor-dev

Reply via email to