From 2878f461e18869d7a63a6994a2e43fce05338c1b Mon Sep 17 00:00:00 2001 From: Alice Frosi Date: Fri, 14 Jul 2023 12:48:37 +0200 Subject: common, ops: add error print and return if desc is empty --- operations.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'operations.c') diff --git a/operations.c b/operations.c index c8af0ad..b5e536a 100644 --- a/operations.c +++ b/operations.c @@ -93,7 +93,6 @@ static int prepare_arg_clone(const struct seccomp_notif *req, struct gluten *g, c->err = 0; c->ret = -1; c->nr = s->nr; - for (i = 0; i < s->arg_count; i++) { /* If arg is a pointer then need to calculate the absolute * address and the value of arg is the relative offset of the actual @@ -237,8 +236,8 @@ static int execute_syscall(void *args) c->ret = syscall(c->nr, c->args[0], c->args[1], c->args[2], c->args[3], c->args[4], c->args[5]); c->err = errno; - debug(" execute syscall: ret=%ld errno=%d%s%s", c->ret, c->err, - *c->cwd ? " cwd=" : "", *c->cwd ? c->cwd : ""); + debug(" execute syscall %ld: ret=%ld errno=%d%s%s", c->nr, c->ret, + c->err, *c->cwd ? " cwd=" : "", *c->cwd ? c->cwd : ""); if (c->ret < 0) { perror(" syscall"); exit(EXIT_FAILURE); @@ -380,6 +379,9 @@ int op_return(const struct seccomp_notif *req, int notifier, struct gluten *g, const struct return_desc *desc = gluten_ptr(&req->data, g, op->desc); struct seccomp_notif_resp resp; + if(desc == NULL) + ret_err(-1, "empty description for return value"); + resp.id = req->id; if (desc->cont) { resp.flags = SECCOMP_USER_NOTIF_FLAG_CONTINUE; -- cgit v1.2.3