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-27 00:54:10 -07:00
2015-06-16 11:04:29 +01:00
2015-02-19 12:39:03 -06:00
2015-07-06 14:08:30 +02:00
2015-06-30 19:44:57 -07:00
2015-07-17 11:29:34 +02:00
2015-06-22 16:26:56 +02:00
2015-06-24 15:09:40 -07:00
2015-07-01 14:17:44 -07:00
2015-06-30 19:44:59 -07:00
2015-06-26 14:02:43 -07:00
2015-07-06 14:15:08 +02:00
2015-07-14 12:01:04 +02:00
2015-07-08 11:53:45 -04:00
2015-04-11 22:27:55 -04:00
2014-10-09 22:26:04 -04:00
2015-04-26 17:22:07 -07:00
2015-04-15 15:06:55 -04:00
2015-06-27 13:53:16 -07:00
2015-04-22 14:49:23 -07:00
2015-02-11 20:07:47 -08:00
2015-07-08 09:33:38 -07:00
2014-08-08 15:57:18 -07:00
2015-04-15 16:35:22 -07:00
2015-07-03 15:20:57 -07:00
2015-06-04 23:57:18 +02:00
2015-05-07 12:02:51 +02:00
2015-07-15 10:39:17 +02:00
2015-04-14 16:49:03 -07:00
2014-08-25 15:42:19 -07:00
2015-04-15 16:35:22 -07:00
2014-07-23 10:18:06 -07:00
2015-04-12 21:03:31 +02:00
2015-06-25 17:00:43 -07:00
2014-11-19 15:25:26 -05:00
2015-07-18 03:42:51 +02:00
2014-10-21 23:44:20 +02:00
2015-06-24 14:46:01 -07:00
2015-04-15 16:35:22 -07:00
2015-04-15 16:35:22 -07:00
2014-10-29 11:18:18 -04:00
2015-05-27 11:09:50 +09:30
2014-10-14 02:18:16 +02:00
2014-09-10 15:42:12 -07:00
2015-05-12 09:46:00 +02:00
2015-06-30 19:44:57 -07:00
2014-12-10 17:41:17 -08:00
2015-02-13 21:21:42 -08:00
2014-10-09 22:25:51 -04:00
2015-07-02 16:42:13 -07:00
2015-07-09 06:57:12 +09:30
2015-01-06 11:04:29 -08:00
2014-12-04 14:34:54 -05:00
2015-02-13 21:21:38 -08:00
2015-06-30 19:44:57 -07:00
2015-07-01 10:49:25 -07:00
2014-12-16 15:53:03 -08:00
2015-04-17 09:04:06 -04:00
2015-02-13 21:21:38 -08:00
2015-04-17 09:04:06 -04:00
2015-01-17 10:02:23 +13:00
2015-04-15 16:35:23 -07:00
2015-06-30 19:44:59 -07:00
2015-04-15 16:35:22 -07:00
2015-05-09 17:35:05 -04:00
2015-06-27 13:26:03 -07:00
2015-04-19 13:19:23 -07:00
2015-06-24 17:49:40 -07:00
2015-02-09 15:24:03 -08:00
2014-12-13 12:42:48 -08:00
2015-06-19 10:03:12 +02:00
2015-04-15 16:35:22 -07:00
2015-06-25 17:00:37 -07:00
2014-12-10 17:41:10 -08:00
2015-07-03 15:20:57 -07:00
2015-01-18 01:03:45 -05:00
2014-08-08 15:57:18 -07:00
2015-05-27 12:56:15 -07:00
2014-07-23 10:18:05 -07:00
2014-12-05 17:19:27 -06:00
2014-12-17 12:31:40 -08:00
2014-08-26 13:45:45 -04:00
2014-12-17 12:31:40 -08:00
2014-12-04 14:34:47 -05:00
2015-06-24 17:49:40 -07:00
2015-07-01 10:49:25 -07:00