basic_call.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. {
  2. "invalid call insn1",
  3. .insns = {
  4. BPF_RAW_INSN(BPF_JMP | BPF_CALL | BPF_X, 0, 0, 0, 0),
  5. BPF_EXIT_INSN(),
  6. },
  7. .errstr = "unknown opcode 8d",
  8. .result = REJECT,
  9. },
  10. {
  11. "invalid call insn2",
  12. .insns = {
  13. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 1, 0),
  14. BPF_EXIT_INSN(),
  15. },
  16. .errstr = "BPF_CALL uses reserved",
  17. .result = REJECT,
  18. },
  19. {
  20. "invalid function call",
  21. .insns = {
  22. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, 1234567),
  23. BPF_EXIT_INSN(),
  24. },
  25. .errstr = "invalid func unknown#1234567",
  26. .result = REJECT,
  27. },
  28. {
  29. "invalid argument register",
  30. .insns = {
  31. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),
  32. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),
  33. BPF_EXIT_INSN(),
  34. },
  35. .errstr = "R1 !read_ok",
  36. .result = REJECT,
  37. .prog_type = BPF_PROG_TYPE_SCHED_CLS,
  38. },
  39. {
  40. "non-invalid argument register",
  41. .insns = {
  42. BPF_ALU64_REG(BPF_MOV, BPF_REG_6, BPF_REG_1),
  43. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),
  44. BPF_ALU64_REG(BPF_MOV, BPF_REG_1, BPF_REG_6),
  45. BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),
  46. BPF_EXIT_INSN(),
  47. },
  48. .result = ACCEPT,
  49. .prog_type = BPF_PROG_TYPE_SCHED_CLS,
  50. },