[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] device: fix net_rcv_messages

From: Justus Winter
Subject: [PATCH] device: fix net_rcv_messages
Date: Sun, 8 Jun 2014 11:48:33 +0200

Previously, all net_rcv_messages sent by net_deliver were malformed.
It never was a problem in practice, since the messages are not complex
and thus the kernel does not try to parse the message.

struct net_rcv_messages contains an additional field of type
boolean_t.  This field has no associated type descriptor, so it must
not be included in the message.

* device/net_io.c (net_deliver): Account for the extra field in the
msgh_size calculation.
 device/net_io.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/device/net_io.c b/device/net_io.c
index 82b6fb9..a9d318e 100644
--- a/device/net_io.c
+++ b/device/net_io.c
@@ -467,6 +467,7 @@ boolean_t net_deliver(boolean_t nonblocking)
            /* remember message sizes must be rounded up */
            kmsg->ikm_header.msgh_size =
                    (((mach_msg_size_t) (sizeof(struct net_rcv_msg)
+                                       - sizeof net_kmsg(kmsg)->sent
                                        - NET_RCV_MAX + count)) + 3) &~ 3;
            kmsg->ikm_header.msgh_local_port = MACH_PORT_NULL;
            kmsg->ikm_header.msgh_kind = MACH_MSGH_KIND_NORMAL;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]