Commit 2f69c56
bpf: make bpf_insn_successors to return a pointer
The bpf_insn_successors() function is used to return successors
to a BPF instruction. So far, an instruction could have 0, 1 or 2
successors. Prepare the verifier code to introduction of instructions
with more than 2 successors (namely, indirect jumps).
To do this, introduce a new struct, struct bpf_iarray, containing
an array of bpf instruction indexes and make bpf_insn_successors
to return a pointer of that type. The storage for all instructions
is allocated in the env->succ, which holds an array of size 2,
to be used for all instructions.
Signed-off-by: Anton Protopopov <[email protected]>
Acked-by: Eduard Zingerman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexei Starovoitov <[email protected]>1 parent 44481e4 commit 2f69c56
File tree
3 files changed
+75
-33
lines changed- include/linux
- kernel/bpf
3 files changed
+75
-33
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
509 | 509 | | |
510 | 510 | | |
511 | 511 | | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
512 | 521 | | |
513 | 522 | | |
514 | 523 | | |
| |||
828 | 837 | | |
829 | 838 | | |
830 | 839 | | |
| 840 | + | |
831 | 841 | | |
832 | 842 | | |
833 | 843 | | |
| |||
1050 | 1060 | | |
1051 | 1061 | | |
1052 | 1062 | | |
1053 | | - | |
| 1063 | + | |
1054 | 1064 | | |
1055 | 1065 | | |
1056 | 1066 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
| 57 | + | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| |||
447 | 447 | | |
448 | 448 | | |
449 | 449 | | |
450 | | - | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
451 | 456 | | |
452 | 457 | | |
453 | 458 | | |
| |||
474 | 479 | | |
475 | 480 | | |
476 | 481 | | |
| 482 | + | |
477 | 483 | | |
478 | 484 | | |
479 | | - | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
480 | 491 | | |
481 | 492 | | |
482 | 493 | | |
483 | 494 | | |
484 | | - | |
| 495 | + | |
485 | 496 | | |
486 | 497 | | |
487 | | - | |
| 498 | + | |
488 | 499 | | |
489 | | - | |
| 500 | + | |
490 | 501 | | |
491 | 502 | | |
492 | 503 | | |
| |||
548 | 559 | | |
549 | 560 | | |
550 | 561 | | |
551 | | - | |
| 562 | + | |
| 563 | + | |
552 | 564 | | |
553 | 565 | | |
554 | | - | |
555 | | - | |
| 566 | + | |
| 567 | + | |
556 | 568 | | |
557 | 569 | | |
558 | 570 | | |
| |||
564 | 576 | | |
565 | 577 | | |
566 | 578 | | |
567 | | - | |
568 | | - | |
| 579 | + | |
| 580 | + | |
569 | 581 | | |
570 | 582 | | |
571 | 583 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17805 | 17805 | | |
17806 | 17806 | | |
17807 | 17807 | | |
| 17808 | + | |
| 17809 | + | |
| 17810 | + | |
| 17811 | + | |
| 17812 | + | |
| 17813 | + | |
| 17814 | + | |
| 17815 | + | |
| 17816 | + | |
| 17817 | + | |
| 17818 | + | |
| 17819 | + | |
| 17820 | + | |
| 17821 | + | |
| 17822 | + | |
| 17823 | + | |
17808 | 17824 | | |
17809 | 17825 | | |
17810 | 17826 | | |
| |||
18025 | 18041 | | |
18026 | 18042 | | |
18027 | 18043 | | |
18028 | | - | |
| 18044 | + | |
18029 | 18045 | | |
| 18046 | + | |
18030 | 18047 | | |
18031 | 18048 | | |
18032 | 18049 | | |
| |||
18050 | 18067 | | |
18051 | 18068 | | |
18052 | 18069 | | |
18053 | | - | |
18054 | | - | |
18055 | | - | |
18056 | | - | |
18057 | | - | |
| 18070 | + | |
| 18071 | + | |
| 18072 | + | |
| 18073 | + | |
| 18074 | + | |
18058 | 18075 | | |
18059 | 18076 | | |
18060 | 18077 | | |
| |||
24313 | 24330 | | |
24314 | 24331 | | |
24315 | 24332 | | |
24316 | | - | |
24317 | | - | |
| 24333 | + | |
24318 | 24334 | | |
24319 | 24335 | | |
24320 | 24336 | | |
24321 | | - | |
24322 | | - | |
24323 | | - | |
| 24337 | + | |
| 24338 | + | |
| 24339 | + | |
24324 | 24340 | | |
24325 | 24341 | | |
24326 | 24342 | | |
| |||
24373 | 24389 | | |
24374 | 24390 | | |
24375 | 24391 | | |
24376 | | - | |
| 24392 | + | |
24377 | 24393 | | |
24378 | 24394 | | |
24379 | 24395 | | |
24380 | | - | |
| 24396 | + | |
24381 | 24397 | | |
24382 | 24398 | | |
24383 | 24399 | | |
| |||
24484 | 24500 | | |
24485 | 24501 | | |
24486 | 24502 | | |
24487 | | - | |
24488 | | - | |
24489 | | - | |
24490 | | - | |
| 24503 | + | |
| 24504 | + | |
| 24505 | + | |
| 24506 | + | |
24491 | 24507 | | |
24492 | | - | |
| 24508 | + | |
24493 | 24509 | | |
24494 | 24510 | | |
24495 | 24511 | | |
| |||
24506 | 24522 | | |
24507 | 24523 | | |
24508 | 24524 | | |
24509 | | - | |
24510 | | - | |
| 24525 | + | |
| 24526 | + | |
24511 | 24527 | | |
24512 | 24528 | | |
24513 | 24529 | | |
| |||
24569 | 24585 | | |
24570 | 24586 | | |
24571 | 24587 | | |
| 24588 | + | |
| 24589 | + | |
| 24590 | + | |
24572 | 24591 | | |
24573 | 24592 | | |
24574 | 24593 | | |
| |||
24817 | 24836 | | |
24818 | 24837 | | |
24819 | 24838 | | |
| 24839 | + | |
24820 | 24840 | | |
24821 | 24841 | | |
24822 | 24842 | | |
0 commit comments