162306a36Sopenharmony_ci{ 262306a36Sopenharmony_ci "dead code: start", 362306a36Sopenharmony_ci .insns = { 462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 562306a36Sopenharmony_ci BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0), 662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 862306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, -4), 962306a36Sopenharmony_ci BPF_EXIT_INSN(), 1062306a36Sopenharmony_ci }, 1162306a36Sopenharmony_ci .errstr_unpriv = "R9 !read_ok", 1262306a36Sopenharmony_ci .result_unpriv = REJECT, 1362306a36Sopenharmony_ci .result = ACCEPT, 1462306a36Sopenharmony_ci .retval = 7, 1562306a36Sopenharmony_ci}, 1662306a36Sopenharmony_ci{ 1762306a36Sopenharmony_ci "dead code: mid 1", 1862306a36Sopenharmony_ci .insns = { 1962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 2062306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1), 2162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 0), 2262306a36Sopenharmony_ci BPF_EXIT_INSN(), 2362306a36Sopenharmony_ci }, 2462306a36Sopenharmony_ci .result = ACCEPT, 2562306a36Sopenharmony_ci .retval = 7, 2662306a36Sopenharmony_ci}, 2762306a36Sopenharmony_ci{ 2862306a36Sopenharmony_ci "dead code: mid 2", 2962306a36Sopenharmony_ci .insns = { 3062306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_prandom_u32), 3162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 4), 3262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1), 3362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 3462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 3562306a36Sopenharmony_ci BPF_EXIT_INSN(), 3662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 3762306a36Sopenharmony_ci BPF_EXIT_INSN(), 3862306a36Sopenharmony_ci }, 3962306a36Sopenharmony_ci .result = ACCEPT, 4062306a36Sopenharmony_ci .retval = 1, 4162306a36Sopenharmony_ci}, 4262306a36Sopenharmony_ci{ 4362306a36Sopenharmony_ci "dead code: end 1", 4462306a36Sopenharmony_ci .insns = { 4562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 4662306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 4762306a36Sopenharmony_ci BPF_EXIT_INSN(), 4862306a36Sopenharmony_ci BPF_EXIT_INSN(), 4962306a36Sopenharmony_ci }, 5062306a36Sopenharmony_ci .result = ACCEPT, 5162306a36Sopenharmony_ci .retval = 7, 5262306a36Sopenharmony_ci}, 5362306a36Sopenharmony_ci{ 5462306a36Sopenharmony_ci "dead code: end 2", 5562306a36Sopenharmony_ci .insns = { 5662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 5762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 5862306a36Sopenharmony_ci BPF_EXIT_INSN(), 5962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 6062306a36Sopenharmony_ci BPF_EXIT_INSN(), 6162306a36Sopenharmony_ci }, 6262306a36Sopenharmony_ci .result = ACCEPT, 6362306a36Sopenharmony_ci .retval = 7, 6462306a36Sopenharmony_ci}, 6562306a36Sopenharmony_ci{ 6662306a36Sopenharmony_ci "dead code: end 3", 6762306a36Sopenharmony_ci .insns = { 6862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 6962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 7062306a36Sopenharmony_ci BPF_EXIT_INSN(), 7162306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 7262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 1), 7362306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 7462306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -5), 7562306a36Sopenharmony_ci }, 7662306a36Sopenharmony_ci .result = ACCEPT, 7762306a36Sopenharmony_ci .retval = 7, 7862306a36Sopenharmony_ci}, 7962306a36Sopenharmony_ci{ 8062306a36Sopenharmony_ci "dead code: tail of main + func", 8162306a36Sopenharmony_ci .insns = { 8262306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 8362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 8462306a36Sopenharmony_ci BPF_EXIT_INSN(), 8562306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 8662306a36Sopenharmony_ci BPF_EXIT_INSN(), 8762306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 8862306a36Sopenharmony_ci BPF_EXIT_INSN(), 8962306a36Sopenharmony_ci }, 9062306a36Sopenharmony_ci .errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for", 9162306a36Sopenharmony_ci .result_unpriv = REJECT, 9262306a36Sopenharmony_ci .result = ACCEPT, 9362306a36Sopenharmony_ci .retval = 7, 9462306a36Sopenharmony_ci}, 9562306a36Sopenharmony_ci{ 9662306a36Sopenharmony_ci "dead code: tail of main + two functions", 9762306a36Sopenharmony_ci .insns = { 9862306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 9962306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 10062306a36Sopenharmony_ci BPF_EXIT_INSN(), 10162306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 10262306a36Sopenharmony_ci BPF_EXIT_INSN(), 10362306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 10462306a36Sopenharmony_ci BPF_EXIT_INSN(), 10562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 10662306a36Sopenharmony_ci BPF_EXIT_INSN(), 10762306a36Sopenharmony_ci }, 10862306a36Sopenharmony_ci .errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for", 10962306a36Sopenharmony_ci .result_unpriv = REJECT, 11062306a36Sopenharmony_ci .result = ACCEPT, 11162306a36Sopenharmony_ci .retval = 7, 11262306a36Sopenharmony_ci}, 11362306a36Sopenharmony_ci{ 11462306a36Sopenharmony_ci "dead code: function in the middle and mid of another func", 11562306a36Sopenharmony_ci .insns = { 11662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 7), 11762306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 3), 11862306a36Sopenharmony_ci BPF_EXIT_INSN(), 11962306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 12062306a36Sopenharmony_ci BPF_EXIT_INSN(), 12162306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 12262306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 7, 1), 12362306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -5), 12462306a36Sopenharmony_ci BPF_EXIT_INSN(), 12562306a36Sopenharmony_ci }, 12662306a36Sopenharmony_ci .errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for", 12762306a36Sopenharmony_ci .result_unpriv = REJECT, 12862306a36Sopenharmony_ci .result = ACCEPT, 12962306a36Sopenharmony_ci .retval = 7, 13062306a36Sopenharmony_ci}, 13162306a36Sopenharmony_ci{ 13262306a36Sopenharmony_ci "dead code: middle of main before call", 13362306a36Sopenharmony_ci .insns = { 13462306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 13562306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 2, 1), 13662306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 5), 13762306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 13862306a36Sopenharmony_ci BPF_EXIT_INSN(), 13962306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 14062306a36Sopenharmony_ci BPF_EXIT_INSN(), 14162306a36Sopenharmony_ci }, 14262306a36Sopenharmony_ci .errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for", 14362306a36Sopenharmony_ci .result_unpriv = REJECT, 14462306a36Sopenharmony_ci .result = ACCEPT, 14562306a36Sopenharmony_ci .retval = 2, 14662306a36Sopenharmony_ci}, 14762306a36Sopenharmony_ci{ 14862306a36Sopenharmony_ci "dead code: start of a function", 14962306a36Sopenharmony_ci .insns = { 15062306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 15162306a36Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 15262306a36Sopenharmony_ci BPF_EXIT_INSN(), 15362306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 15462306a36Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 15562306a36Sopenharmony_ci BPF_EXIT_INSN(), 15662306a36Sopenharmony_ci }, 15762306a36Sopenharmony_ci .errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for", 15862306a36Sopenharmony_ci .result_unpriv = REJECT, 15962306a36Sopenharmony_ci .result = ACCEPT, 16062306a36Sopenharmony_ci .retval = 2, 16162306a36Sopenharmony_ci}, 16262306a36Sopenharmony_ci{ 16362306a36Sopenharmony_ci "dead code: zero extension", 16462306a36Sopenharmony_ci .insns = { 16562306a36Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 0), 16662306a36Sopenharmony_ci BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4), 16762306a36Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1), 16862306a36Sopenharmony_ci BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_10, -4), 16962306a36Sopenharmony_ci BPF_EXIT_INSN(), 17062306a36Sopenharmony_ci }, 17162306a36Sopenharmony_ci .result = ACCEPT, 17262306a36Sopenharmony_ci .retval = 0, 17362306a36Sopenharmony_ci}, 174