From cb90fdddc481aa9a4a04fc5fd5240f7ad5ff7e68 Mon Sep 17 00:00:00 2001 From: njoly Date: Tue, 16 Jun 2009 23:17:02 +0000 Subject: Add LINUX_CMSG_{SPACE,LEN} macros. Use then when calculating the msg_controllen size, when converting the control message buffer from native (previous version was missing the linux_cmsghdr size). --- sys/compat/linux/common/linux_socket.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sys/compat/linux/common/linux_socket.c') diff --git a/sys/compat/linux/common/linux_socket.c b/sys/compat/linux/common/linux_socket.c index 120b3578ab6..af834c68007 100644 --- a/sys/compat/linux/common/linux_socket.c +++ b/sys/compat/linux/common/linux_socket.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.102 2009/06/16 22:56:49 njoly Exp $ */ +/* $NetBSD: linux_socket.c,v 1.103 2009/06/16 23:17:02 njoly Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.102 2009/06/16 22:56:49 njoly Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.103 2009/06/16 23:17:02 njoly Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -669,11 +669,11 @@ linux_copyout_msg_control(struct lwp *l, struct msghdr *mp, struct mbuf *control break; } m = m->m_next; - if (m == NULL || q + LINUX_CMSG_ALIGN(dlen) > q_end) { - q += dlen; + if (m == NULL || q + LINUX_CMSG_SPACE(dlen) > q_end) { + q += LINUX_CMSG_LEN(dlen); break; } - q += LINUX_CMSG_ALIGN(dlen); + q += LINUX_CMSG_SPACE(dlen); } done: -- cgit