Files
linux/include/linux
Andrii Nakryiko 3feb263bb5 bpf: handle ldimm64 properly in check_cfg()
ldimm64 instructions are 16-byte long, and so have to be handled
appropriately in check_cfg(), just like the rest of BPF verifier does.

This has implications in three places:
  - when determining next instruction for non-jump instructions;
  - when determining next instruction for callback address ldimm64
    instructions (in visit_func_call_insn());
  - when checking for unreachable instructions, where second half of
    ldimm64 is expected to be unreachable;

We take this also as an opportunity to report jump into the middle of
ldimm64. And adjust few test_verifier tests accordingly.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Reported-by: Hao Sun <sunhao.th@gmail.com>
Fixes: 475fb78fbf ("bpf: verifier (add branch/goto checks)")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231110002638.4168352-2-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-11-09 20:11:20 -08:00
..
2023-10-05 09:13:42 -07:00
2023-10-24 13:08:14 -07:00
2023-11-04 10:22:52 +01:00
2023-05-20 19:20:30 +02:00
2023-09-18 09:28:22 +01:00
2023-05-19 23:23:52 +05:30
2023-08-23 08:21:37 +01:00
2023-09-11 08:13:18 +00:00
2023-10-11 08:46:01 -07:00
2023-08-09 08:21:22 +02:00
2023-09-22 08:52:13 -06:00
2023-05-31 13:06:57 +02:00
2023-11-01 22:33:53 -07:00
2023-10-30 21:48:22 -04:00
2023-10-04 10:41:56 -07:00
2023-10-04 10:41:56 -07:00
2023-05-25 09:26:19 +02:00
2023-09-11 23:59:47 -04:00
2023-06-13 16:49:23 +02:00
2023-10-25 20:19:00 +02:00
2023-09-13 10:48:48 +02:00
2023-05-01 17:50:18 -07:00
2023-08-04 11:02:46 +01:00
2023-10-12 09:58:02 +02:00
2023-07-14 13:47:07 -06:00
2023-10-11 10:11:54 -07:00
2023-08-18 10:12:10 -07:00
2023-10-18 14:43:21 -07:00
2023-10-04 10:41:57 -07:00
2023-10-16 12:44:06 -04:00
2023-10-16 12:44:06 -04:00
2023-08-18 10:18:59 -07:00
2023-10-18 10:01:33 +02:00
2023-07-11 14:12:19 -07:00
2023-06-20 20:17:10 -07:00
2023-10-27 10:51:41 +01:00
2023-10-11 10:11:54 -07:00
2023-08-18 10:12:25 -07:00
2023-10-18 14:34:16 -07:00
2023-06-23 16:59:30 -07:00
2023-06-05 09:36:39 +02:00
2023-09-29 17:20:46 -07:00
2023-10-03 21:18:13 +02:00
2023-08-12 09:18:47 -07:00
2023-10-13 10:07:17 +02:00
2023-10-06 11:01:23 +02:00
2023-10-06 11:01:23 +02:00
2023-09-11 22:10:47 +02:00
2023-05-23 12:55:12 -07:00
2023-07-15 11:34:49 -07:00
2023-06-23 16:59:28 -07:00
2023-05-18 19:52:31 -07:00
2023-06-11 18:22:47 +02:00
2023-06-05 09:36:39 +02:00
2023-10-15 13:19:42 +01:00
2023-11-01 10:02:18 +00:00
2023-10-18 14:43:21 -07:00
2023-08-21 13:37:26 -07:00
2023-11-03 09:16:42 +00:00
2023-10-18 14:43:21 -07:00
2023-08-07 17:55:54 +00:00
2023-08-11 21:12:47 +02:00
2023-09-14 16:16:36 +02:00
2023-10-27 18:04:28 +08:00
2023-08-24 13:27:47 -05:00
2023-10-18 14:34:18 -07:00
2023-08-21 14:52:16 +02:00
2023-08-21 13:37:27 -07:00