From 5b3fbbf8bad230318aded7c5e1ab6cc607724e64 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Mon, 5 Jun 2023 20:38:02 +0300 Subject: add check against calling ipc_resp erroneously --- common/uapi/ipc.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'common') diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c index d71f53c..1596169 100644 --- a/common/uapi/ipc.c +++ b/common/uapi/ipc.c @@ -155,6 +155,11 @@ static struct stack_diff enter_rpc(struct tcb *t, struct sys_ret a) */ static void leave_rpc(struct tcb *t, struct sys_ret a) { + /* if we're not in an rpc, the user messed something up. */ + /** @todo choose or come up with more fitting error value. */ + if (!is_rpc(t)) + return_args(t, SYS_RET1(ERR_MISC)); + vm_t rpc_stack = t->rpc_stack + BASE_PAGE_SIZE; struct call_ctx *ctx = (struct call_ctx *)(rpc_stack) - 1; t->regs = ctx->regs; -- cgit v1.3