Alex Gartrell 24b4d2abd0 ebpf: Allow dereferences of PTR_TO_STACK registers
mov %rsp, %r1           ; r1 = rsp
        add $-8, %r1            ; r1 = rsp - 8
        store_q $123, -8(%rsp)  ; *(u64*)r1 = 123  <- valid
        store_q $123, (%r1)     ; *(u64*)r1 = 123  <- previously invalid
        mov $0, %r0
        exit                    ; Always need to exit

And we'd get the following error:

	0: (bf) r1 = r10
	1: (07) r1 += -8
	2: (7a) *(u64 *)(r10 -8) = 999
	3: (7a) *(u64 *)(r1 +0) = 999
	R1 invalid mem access 'fp'

	Unable to load program

We already know that a register is a stack address and the appropriate
offset, so we should be able to validate those references as well.

Signed-off-by: Alex Gartrell <agartrell@fb.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-07-27 00:54:10 -07:00
..
2015-07-06 14:08:30 +02:00
2015-06-30 19:44:57 -07:00
2015-04-11 22:27:55 -04:00
2014-10-09 22:26:04 -04:00
2014-08-08 15:57:18 -07:00
2015-04-12 21:03:31 +02:00
2015-06-25 17:00:43 -07:00
2014-09-10 15:42:12 -07:00
2015-07-09 06:57:12 +09:30
2014-12-04 14:34:54 -05:00
2015-01-17 10:02:23 +13:00
2015-06-25 17:00:37 -07:00
2014-12-10 17:41:10 -08:00