uninit.c 761 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. {
  2. "read uninitialized register",
  3. .insns = {
  4. BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
  5. BPF_EXIT_INSN(),
  6. },
  7. .errstr = "R2 !read_ok",
  8. .result = REJECT,
  9. },
  10. {
  11. "read invalid register",
  12. .insns = {
  13. BPF_MOV64_REG(BPF_REG_0, -1),
  14. BPF_EXIT_INSN(),
  15. },
  16. .errstr = "R15 is invalid",
  17. .result = REJECT,
  18. },
  19. {
  20. "program doesn't init R0 before exit",
  21. .insns = {
  22. BPF_ALU64_REG(BPF_MOV, BPF_REG_2, BPF_REG_1),
  23. BPF_EXIT_INSN(),
  24. },
  25. .errstr = "R0 !read_ok",
  26. .result = REJECT,
  27. },
  28. {
  29. "program doesn't init R0 before exit in all branches",
  30. .insns = {
  31. BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
  32. BPF_MOV64_IMM(BPF_REG_0, 1),
  33. BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, 2),
  34. BPF_EXIT_INSN(),
  35. },
  36. .errstr = "R0 !read_ok",
  37. .errstr_unpriv = "R1 pointer comparison",
  38. .result = REJECT,
  39. },