18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "DIV32 by 0, zero check 1", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 58c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 68c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 78c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1), 88c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 98c2ecf20Sopenharmony_ci }, 108c2ecf20Sopenharmony_ci .result = ACCEPT, 118c2ecf20Sopenharmony_ci .retval = 42, 128c2ecf20Sopenharmony_ci}, 138c2ecf20Sopenharmony_ci{ 148c2ecf20Sopenharmony_ci "DIV32 by 0, zero check 2", 158c2ecf20Sopenharmony_ci .insns = { 168c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 178c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL), 188c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 198c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1), 208c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 218c2ecf20Sopenharmony_ci }, 228c2ecf20Sopenharmony_ci .result = ACCEPT, 238c2ecf20Sopenharmony_ci .retval = 42, 248c2ecf20Sopenharmony_ci}, 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci "DIV64 by 0, zero check", 278c2ecf20Sopenharmony_ci .insns = { 288c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 298c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 308c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 318c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_DIV, BPF_REG_2, BPF_REG_1), 328c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 338c2ecf20Sopenharmony_ci }, 348c2ecf20Sopenharmony_ci .result = ACCEPT, 358c2ecf20Sopenharmony_ci .retval = 42, 368c2ecf20Sopenharmony_ci}, 378c2ecf20Sopenharmony_ci{ 388c2ecf20Sopenharmony_ci "MOD32 by 0, zero check 1", 398c2ecf20Sopenharmony_ci .insns = { 408c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 418c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 428c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 438c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1), 448c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 458c2ecf20Sopenharmony_ci }, 468c2ecf20Sopenharmony_ci .result = ACCEPT, 478c2ecf20Sopenharmony_ci .retval = 42, 488c2ecf20Sopenharmony_ci}, 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci "MOD32 by 0, zero check 2", 518c2ecf20Sopenharmony_ci .insns = { 528c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 538c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL), 548c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 558c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1), 568c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 578c2ecf20Sopenharmony_ci }, 588c2ecf20Sopenharmony_ci .result = ACCEPT, 598c2ecf20Sopenharmony_ci .retval = 42, 608c2ecf20Sopenharmony_ci}, 618c2ecf20Sopenharmony_ci{ 628c2ecf20Sopenharmony_ci "MOD64 by 0, zero check", 638c2ecf20Sopenharmony_ci .insns = { 648c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 658c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 668c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1), 678c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MOD, BPF_REG_2, BPF_REG_1), 688c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 698c2ecf20Sopenharmony_ci }, 708c2ecf20Sopenharmony_ci .result = ACCEPT, 718c2ecf20Sopenharmony_ci .retval = 42, 728c2ecf20Sopenharmony_ci}, 738c2ecf20Sopenharmony_ci{ 748c2ecf20Sopenharmony_ci "DIV32 by 0, zero check ok, cls", 758c2ecf20Sopenharmony_ci .insns = { 768c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 778c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 2), 788c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 16), 798c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1), 808c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_2), 818c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 828c2ecf20Sopenharmony_ci }, 838c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 848c2ecf20Sopenharmony_ci .result = ACCEPT, 858c2ecf20Sopenharmony_ci .retval = 8, 868c2ecf20Sopenharmony_ci}, 878c2ecf20Sopenharmony_ci{ 888c2ecf20Sopenharmony_ci "DIV32 by 0, zero check 1, cls", 898c2ecf20Sopenharmony_ci .insns = { 908c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 918c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 1), 928c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_DIV, BPF_REG_0, BPF_REG_1), 938c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 948c2ecf20Sopenharmony_ci }, 958c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 968c2ecf20Sopenharmony_ci .result = ACCEPT, 978c2ecf20Sopenharmony_ci .retval = 0, 988c2ecf20Sopenharmony_ci}, 998c2ecf20Sopenharmony_ci{ 1008c2ecf20Sopenharmony_ci "DIV32 by 0, zero check 2, cls", 1018c2ecf20Sopenharmony_ci .insns = { 1028c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL), 1038c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 1), 1048c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_DIV, BPF_REG_0, BPF_REG_1), 1058c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1068c2ecf20Sopenharmony_ci }, 1078c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1088c2ecf20Sopenharmony_ci .result = ACCEPT, 1098c2ecf20Sopenharmony_ci .retval = 0, 1108c2ecf20Sopenharmony_ci}, 1118c2ecf20Sopenharmony_ci{ 1128c2ecf20Sopenharmony_ci "DIV64 by 0, zero check, cls", 1138c2ecf20Sopenharmony_ci .insns = { 1148c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 1158c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 1), 1168c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_DIV, BPF_REG_0, BPF_REG_1), 1178c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1188c2ecf20Sopenharmony_ci }, 1198c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1208c2ecf20Sopenharmony_ci .result = ACCEPT, 1218c2ecf20Sopenharmony_ci .retval = 0, 1228c2ecf20Sopenharmony_ci}, 1238c2ecf20Sopenharmony_ci{ 1248c2ecf20Sopenharmony_ci "MOD32 by 0, zero check ok, cls", 1258c2ecf20Sopenharmony_ci .insns = { 1268c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 42), 1278c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 3), 1288c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 5), 1298c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1), 1308c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_2), 1318c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1328c2ecf20Sopenharmony_ci }, 1338c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1348c2ecf20Sopenharmony_ci .result = ACCEPT, 1358c2ecf20Sopenharmony_ci .retval = 2, 1368c2ecf20Sopenharmony_ci}, 1378c2ecf20Sopenharmony_ci{ 1388c2ecf20Sopenharmony_ci "MOD32 by 0, zero check 1, cls", 1398c2ecf20Sopenharmony_ci .insns = { 1408c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 1418c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 1), 1428c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MOD, BPF_REG_0, BPF_REG_1), 1438c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1448c2ecf20Sopenharmony_ci }, 1458c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1468c2ecf20Sopenharmony_ci .result = ACCEPT, 1478c2ecf20Sopenharmony_ci .retval = 1, 1488c2ecf20Sopenharmony_ci}, 1498c2ecf20Sopenharmony_ci{ 1508c2ecf20Sopenharmony_ci "MOD32 by 0, zero check 2, cls", 1518c2ecf20Sopenharmony_ci .insns = { 1528c2ecf20Sopenharmony_ci BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL), 1538c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 1), 1548c2ecf20Sopenharmony_ci BPF_ALU32_REG(BPF_MOD, BPF_REG_0, BPF_REG_1), 1558c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1568c2ecf20Sopenharmony_ci }, 1578c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1588c2ecf20Sopenharmony_ci .result = ACCEPT, 1598c2ecf20Sopenharmony_ci .retval = 1, 1608c2ecf20Sopenharmony_ci}, 1618c2ecf20Sopenharmony_ci{ 1628c2ecf20Sopenharmony_ci "MOD64 by 0, zero check 1, cls", 1638c2ecf20Sopenharmony_ci .insns = { 1648c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 1658c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, 2), 1668c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MOD, BPF_REG_0, BPF_REG_1), 1678c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1688c2ecf20Sopenharmony_ci }, 1698c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1708c2ecf20Sopenharmony_ci .result = ACCEPT, 1718c2ecf20Sopenharmony_ci .retval = 2, 1728c2ecf20Sopenharmony_ci}, 1738c2ecf20Sopenharmony_ci{ 1748c2ecf20Sopenharmony_ci "MOD64 by 0, zero check 2, cls", 1758c2ecf20Sopenharmony_ci .insns = { 1768c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 1778c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_0, -1), 1788c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_MOD, BPF_REG_0, BPF_REG_1), 1798c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1808c2ecf20Sopenharmony_ci }, 1818c2ecf20Sopenharmony_ci .prog_type = BPF_PROG_TYPE_SCHED_CLS, 1828c2ecf20Sopenharmony_ci .result = ACCEPT, 1838c2ecf20Sopenharmony_ci .retval = -1, 1848c2ecf20Sopenharmony_ci}, 185