aboutgitcodelistschat:MatrixIRC
path: root/operations.c
diff options
context:
space:
mode:
authorAlice Frosi <afrosi@redhat.com>2023-02-27 13:19:01 +0100
committerAlice Frosi <afrosi@redhat.com>2023-02-27 14:10:08 +0100
commit52e2835061429d93abacf8d1cf00f7da69e7a853 (patch)
treec90078b2627b8543ca188c45db17591883b01a4b /operations.c
parent33750f1e9cf151d64e77f73a0f632b6de586a30e (diff)
downloadseitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar.gz
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar.bz2
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar.lz
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar.xz
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.tar.zst
seitan-52e2835061429d93abacf8d1cf00f7da69e7a853.zip
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.
Diffstat (limited to 'operations.c')
-rw-r--r--operations.c6
1 files changed, 6 insertions, 0 deletions
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",