summaryrefslogtreecommitdiff
path: root/ipc/ipc_kmsg.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/ipc_kmsg.c')
-rw-r--r--ipc/ipc_kmsg.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
index 1988da45..5012e607 100644
--- a/ipc/ipc_kmsg.c
+++ b/ipc/ipc_kmsg.c
@@ -1447,8 +1447,10 @@ ipc_kmsg_copyin_body(
mach_port_name_t port = ((mach_port_t*)data)[i];
ipc_object_t object;
- if (!MACH_PORT_NAME_VALID(port))
+ if (!MACH_PORT_NAME_VALID(port)) {
+ objects[i] = (ipc_object_t)invalid_name_to_port(port);
continue;
+ }
kr = ipc_object_copyin(space, port,
name, &object);
@@ -1465,9 +1467,6 @@ ipc_kmsg_copyin_body(
kmsg->ikm_header.msgh_bits |=
MACH_MSGH_BITS_CIRCULAR;
- /* TODO: revisit this for 64 bits since the size of
- * mach_port_name_t is not the same as a pointer size.
- */
objects[i] = object;
}