From 52e2835061429d93abacf8d1cf00f7da69e7a853 Mon Sep 17 00:00:00 2001 From: Alice Frosi Date: Mon, 27 Feb 2023 13:19:01 +0100 Subject: seitan: add op_cmp The operation op_cmp allows to compare 2 areas of memory and if they don't match to jump to an operation. --- operations.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'operations.c') diff --git a/operations.c b/operations.c index 8cd0828..afc4b00 100644 --- a/operations.c +++ b/operations.c @@ -313,6 +313,12 @@ int do_operations(void *data, struct op operations[], struct seccomp_notif *req, break; case OP_END: return 0; + case OP_CMP: + if (memcmp((uint16_t *)data + operations[i].cmp.s1_off, + (uint16_t *)data + operations[i].cmp.s2_off, + operations[i].cmp.size) != 0) { + i = operations[i].cmp.jmp; + } break; default: fprintf(stderr, "unknow operation %d \n", -- cgit v1.2.3