From 513125f30a05b4ad3408d5f4efd36d2c6ba10744 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 1 Oct 2023 16:08:43 +0200 Subject: mach_msg: Fix checking reception size We need to check against the actual user size that will be used, not the current kernel size. Usually userland uses amply-large reception buffer, but better be exact. --- kern/ipc_mig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kern/ipc_mig.c b/kern/ipc_mig.c index df8a9467..d26d2c6d 100644 --- a/kern/ipc_mig.c +++ b/kern/ipc_mig.c @@ -198,7 +198,7 @@ mach_msg( kmsg->ikm_header.msgh_seqno = seqno; - if (rcv_size < kmsg->ikm_header.msgh_size) { + if (rcv_size < msg_usize(&kmsg->ikm_header)) { ipc_kmsg_copyout_dest(kmsg, space); ipc_kmsg_put_to_kernel(msg, kmsg, sizeof *msg); return MACH_RCV_TOO_LARGE; -- cgit v1.2.3