Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Nov 2003 16:06:05 -0800 (PST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 42495 for review
Message-ID:  <200311160006.hAG065kQ010749@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=42495

Change 42495 by rwatson@rwatson_tislabs on 2003/11/15 16:05:47

	For getsockopt() to retrieve MAC labels, we must copy in the
	struct mac so we know what labels to externalize.  This
	appears to fix SO_LABEL but not SO_PEERLABEL for reason I
	am still working on figuring out.

Affected files ...

.. //depot/projects/trustedbsd/mac/sys/kern/uipc_socket.c#55 edit

Differences ...

==== //depot/projects/trustedbsd/mac/sys/kern/uipc_socket.c#55 (text+ko) ====

@@ -1599,6 +1599,10 @@
 			break;
 		case SO_LABEL:
 #ifdef MAC
+			error = sooptcopyin(sopt, &extmac, sizeof(extmac),
+			    sizeof(extmac));
+			if (error)
+				return (error);
 			error = mac_getsockopt_label_get(
 			    sopt->sopt_td->td_ucred, so, &extmac);
 			if (error)
@@ -1610,6 +1614,10 @@
 			break;
 		case SO_PEERLABEL:
 #ifdef MAC
+			error = sooptcopyin(sopt, &extmac, sizeof(extmac),
+			    sizeof(extmac));
+			if (error)
+				return (error);
 			error = mac_getsockopt_peerlabel_get(
 			    sopt->sopt_td->td_ucred, so, &extmac);
 			if (error)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200311160006.hAG065kQ010749>