summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorAlex Gartrell <agartrell@fb.com>2015-07-23 14:24:40 -0700
committerDavid S. Miller <davem@davemloft.net>2015-07-27 00:54:10 -0700
commit24b4d2abd0bd628f396dada3e915d395cbf459eb (patch)
treeff4993b4c6f7c86b2f325d93d5c944446e5d5c61 /ipc
parent6ecfdd28c8a6504349ca8501316b1ed3f639ce44 (diff)
downloadop-kernel-dev-24b4d2abd0bd628f396dada3e915d395cbf459eb.zip
op-kernel-dev-24b4d2abd0bd628f396dada3e915d395cbf459eb.tar.gz
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>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud