Skip to content

Commit 13c3fa7

Browse files
authored
WIP: Validate That NEG(64) Ops Have K Clear (#780)
Signed-off-by: Will Hawkins <[email protected]>
1 parent f573175 commit 13c3fa7

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

vm/ubpf_vm.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,7 +1815,6 @@ validate(const struct ubpf_vm* vm, const struct ebpf_inst* insts, uint32_t num_i
18151815
case EBPF_OP_LSH_REG:
18161816
case EBPF_OP_RSH_IMM:
18171817
case EBPF_OP_RSH_REG:
1818-
case EBPF_OP_NEG:
18191818
case EBPF_OP_MOD_REG:
18201819
case EBPF_OP_XOR_IMM:
18211820
case EBPF_OP_XOR_REG:
@@ -1825,6 +1824,13 @@ validate(const struct ubpf_vm* vm, const struct ebpf_inst* insts, uint32_t num_i
18251824
case EBPF_OP_ARSH_REG:
18261825
break;
18271826

1827+
case EBPF_OP_NEG:
1828+
if (inst.src != 0) {
1829+
*errmsg = ubpf_error("invalid src field for neg op at PC %d", i);
1830+
return false;
1831+
}
1832+
break;
1833+
18281834
case EBPF_OP_LE:
18291835
case EBPF_OP_BE:
18301836
case EBPF_OP_BSWAP:
@@ -1849,7 +1855,6 @@ validate(const struct ubpf_vm* vm, const struct ebpf_inst* insts, uint32_t num_i
18491855
case EBPF_OP_LSH64_REG:
18501856
case EBPF_OP_RSH64_IMM:
18511857
case EBPF_OP_RSH64_REG:
1852-
case EBPF_OP_NEG64:
18531858
case EBPF_OP_MOD64_REG:
18541859
case EBPF_OP_XOR64_IMM:
18551860
case EBPF_OP_XOR64_REG:
@@ -1862,6 +1867,13 @@ validate(const struct ubpf_vm* vm, const struct ebpf_inst* insts, uint32_t num_i
18621867
case EBPF_OP_ARSH64_REG:
18631868
break;
18641869

1870+
case EBPF_OP_NEG64:
1871+
if (inst.src != 0) {
1872+
*errmsg = ubpf_error("invalid src field for neg64 op at PC %d", i);
1873+
return false;
1874+
}
1875+
break;
1876+
18651877
case EBPF_OP_LDXW:
18661878
case EBPF_OP_LDXH:
18671879
case EBPF_OP_LDXB:

0 commit comments

Comments
 (0)