PERFORCE change 15384 for review
Robert Watson
rwatson at freebsd.org
Thu Aug 1 15:13:28 GMT 2002
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=15384
Change 15384 by rwatson at rwatson_paprika on 2002/08/01 08:13:16
Integ trustedbsd base into trustedbsd_mac, trickling back in
various MAC commits, etc.
Affected files ...
.. //depot/projects/trustedbsd/mac/include/Makefile#13 integrate
.. //depot/projects/trustedbsd/mac/include/cpio.h#1 branch
.. //depot/projects/trustedbsd/mac/lib/libc/xdr/xdr_array.c#5 integrate
.. //depot/projects/trustedbsd/mac/lib/libz/minigzip.c#3 integrate
.. //depot/projects/trustedbsd/mac/sys/conf/kern.post.mk#11 integrate
.. //depot/projects/trustedbsd/mac/sys/dev/wi/if_wi.c#20 integrate
.. //depot/projects/trustedbsd/mac/sys/i386/acpica/acpi_wakeup.c#5 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/kern_exec.c#29 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/kern_exit.c#17 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/kern_ktrace.c#12 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/kern_shutdown.c#11 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/subr_mbuf.c#19 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/subr_taskqueue.c#4 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/uipc_socket.c#31 integrate
.. //depot/projects/trustedbsd/mac/sys/kern/vfs_syscalls.c#70 integrate
.. //depot/projects/trustedbsd/mac/sys/netinet/ip_icmp.c#13 integrate
.. //depot/projects/trustedbsd/mac/sys/netinet/tcp_subr.c#17 integrate
.. //depot/projects/trustedbsd/mac/usr.bin/sockstat/sockstat.c#2 integrate
.. //depot/projects/trustedbsd/mac/usr.sbin/sysinstall/doc.c#3 integrate
Differences ...
==== //depot/projects/trustedbsd/mac/include/Makefile#13 (text+ko) ====
@@ -1,5 +1,5 @@
# @(#)Makefile 8.2 (Berkeley) 1/4/94
-# $FreeBSD: src/include/Makefile,v 1.171 2002/06/17 01:42:33 wollman Exp $
+# $FreeBSD: src/include/Makefile,v 1.172 2002/08/01 07:18:38 mike Exp $
#
# Doing a make install builds /usr/include
#
@@ -8,7 +8,7 @@
CLEANFILES= osreldate.h version vers.c
SUBDIR= arpa protocols rpcsvc rpc
-INCS= a.out.h ar.h assert.h bitstring.h complex.h ctype.h db.h \
+INCS= a.out.h ar.h assert.h bitstring.h complex.h cpio.h ctype.h db.h \
dirent.h \
dlfcn.h elf.h elf-hints.h err.h fnmatch.h fstab.h \
fts.h glob.h grp.h \
==== //depot/projects/trustedbsd/mac/lib/libc/xdr/xdr_array.c#5 (text+ko) ====
@@ -34,7 +34,7 @@
static char *sccsid = "@(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC";
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_array.c,v 1.13 2002/07/31 15:09:49 nectar Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/xdr/xdr_array.c,v 1.14 2002/08/01 12:23:04 nectar Exp $");
/*
* xdr_array.c, Generic XDR routines impelmentation.
@@ -83,7 +83,7 @@
return (FALSE);
}
c = *sizep;
- if ((c > maxsize && UINT_MAX/elsize < c) &&
+ if ((c > maxsize || UINT_MAX/elsize < c) &&
(xdrs->x_op != XDR_FREE)) {
return (FALSE);
}
==== //depot/projects/trustedbsd/mac/lib/libz/minigzip.c#3 (text+ko) ====
@@ -14,7 +14,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libz/minigzip.c,v 1.11 2002/03/11 22:36:45 green Exp $");
+__FBSDID("$FreeBSD: src/lib/libz/minigzip.c,v 1.12 2002/08/01 11:29:05 markm Exp $");
#include <stdio.h>
#include "zlib.h"
@@ -235,7 +235,7 @@
char *infile, *outfile;
FILE *out;
gzFile in;
- int len = strlen(file);
+ size_t len = strlen(file);
if (len + strlen(GZ_SUFFIX) >= sizeof(buf)) {
fprintf(stderr, "%s: filename too long\n", prog);
==== //depot/projects/trustedbsd/mac/sys/conf/kern.post.mk#11 (text+ko) ====
@@ -6,7 +6,7 @@
# should be defined in the kern.pre.mk so that port makefiles can
# override or augment them.
#
-# $FreeBSD: src/sys/conf/kern.post.mk,v 1.24 2002/07/31 14:59:05 jake Exp $
+# $FreeBSD: src/sys/conf/kern.post.mk,v 1.25 2002/08/01 03:13:10 peter Exp $
#
# XXX why are only some phony targets marked phony?
@@ -208,9 +208,6 @@
modules-install modules-reinstall:
cd $S/modules ; ${MKMODULESENV} ${MAKE} install
-modules-tags:
- cd $S/modules ; env ${MKMODULESENV} ${MAKE} tags
-
config.o:
${NORMAL_C}
==== //depot/projects/trustedbsd/mac/sys/dev/wi/if_wi.c#20 (text+ko) ====
@@ -103,7 +103,7 @@
#if !defined(lint)
static const char rcsid[] =
- "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.108 2002/07/29 15:36:22 imp Exp $";
+ "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.109 2002/08/01 07:37:52 imp Exp $";
#endif
static void wi_intr(void *);
@@ -1655,19 +1655,22 @@
break;
case SIOCSIFFLAGS:
/*
- * Can't do promisc and hostap at the same time.
+ * Can't do promisc and hostap at the same time. If all that's
+ * changing is the promisc flag, try to short-circuit a call to
+ * wi_init() by just setting PROMISC in the hardware.
*/
- if (sc->wi_ptype == WI_PORTTYPE_AP)
- ifp->if_flags &= ~IFF_PROMISC;
if (ifp->if_flags & IFF_UP) {
- if (ifp->if_flags & IFF_RUNNING &&
- ifp->if_flags & IFF_PROMISC &&
- !(sc->wi_if_flags & IFF_PROMISC)) {
- WI_SETVAL(WI_RID_PROMISC, 1);
- } else if (ifp->if_flags & IFF_RUNNING &&
- !(ifp->if_flags & IFF_PROMISC) &&
- sc->wi_if_flags & IFF_PROMISC) {
- WI_SETVAL(WI_RID_PROMISC, 0);
+ if (sc->wi_ptype != WI_PORTTYPE_AP &&
+ ifp->if_flags & IFF_RUNNING) {
+ if (ifp->if_flags & IFF_PROMISC &&
+ !(sc->wi_if_flags & IFF_PROMISC)) {
+ WI_SETVAL(WI_RID_PROMISC, 1);
+ } else if (!(ifp->if_flags & IFF_PROMISC) &&
+ sc->wi_if_flags & IFF_PROMISC) {
+ WI_SETVAL(WI_RID_PROMISC, 0);
+ } else {
+ wi_init(sc);
+ }
} else {
wi_init(sc);
}
@@ -2091,12 +2094,7 @@
* and always reset promisc mode in Host-AP regime,
* it shows us all the packets anyway.
*/
- /*
- * Can't do promisc and hostap at the same time.
- */
- if (sc->wi_ptype == WI_PORTTYPE_AP)
- ifp->if_flags &= ~IFF_PROMISC;
- if (ifp->if_flags & IFF_PROMISC)
+ if (sc->wi_ptype != WI_PORTTYPE_AP && ifp->if_flags & IFF_PROMISC)
WI_SETVAL(WI_RID_PROMISC, 1);
else
WI_SETVAL(WI_RID_PROMISC, 0);
==== //depot/projects/trustedbsd/mac/sys/i386/acpica/acpi_wakeup.c#5 (text+ko) ====
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/i386/acpica/acpi_wakeup.c,v 1.10 2002/05/19 06:42:29 peter Exp $
+ * $FreeBSD: src/sys/i386/acpica/acpi_wakeup.c,v 1.11 2002/08/01 09:48:01 iwasaki Exp $
*/
#include <sys/param.h>
@@ -93,6 +93,7 @@
movl r_esi,%esi \n\
movl r_edi,%edi \n\
movl r_esp,%esp \n\
+ popl %eax \n\
\n\
pushl r_efl \n\
popfl \n\
==== //depot/projects/trustedbsd/mac/sys/kern/kern_exec.c#29 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/kern/kern_exec.c,v 1.178 2002/07/30 15:38:29 nectar Exp $
+ * $FreeBSD: src/sys/kern/kern_exec.c,v 1.179 2002/08/01 14:31:58 rwatson Exp $
*/
#include "opt_ktrace.h"
@@ -37,6 +37,7 @@
#include <sys/sysproto.h>
#include <sys/signalvar.h>
#include <sys/kernel.h>
+#include <sys/mac.h>
#include <sys/mount.h>
#include <sys/filedesc.h>
#include <sys/fcntl.h>
@@ -949,6 +950,13 @@
int error;
td = curthread; /* XXXKSE */
+
+#ifdef MAC
+ error = mac_check_vnode_exec(td->td_ucred, imgp->vp);
+ if (error)
+ return (error);
+#endif
+
/* Get file attributes */
error = VOP_GETATTR(vp, attr, td->td_ucred, td);
if (error)
==== //depot/projects/trustedbsd/mac/sys/kern/kern_exit.c#17 (text+ko) ====
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_exit.c 8.7 (Berkeley) 2/12/94
- * $FreeBSD: src/sys/kern/kern_exit.c,v 1.170 2002/06/29 17:26:18 julian Exp $
+ * $FreeBSD: src/sys/kern/kern_exit.c,v 1.172 2002/08/01 13:44:33 jhb Exp $
*/
#include "opt_compat.h"
==== //depot/projects/trustedbsd/mac/sys/kern/kern_ktrace.c#12 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)kern_ktrace.c 8.2 (Berkeley) 9/23/93
- * $FreeBSD: src/sys/kern/kern_ktrace.c,v 1.69 2002/08/01 01:07:03 rwatson Exp $
+ * $FreeBSD: src/sys/kern/kern_ktrace.c,v 1.70 2002/08/01 13:35:38 jhb Exp $
*/
#include "opt_ktrace.h"
@@ -271,9 +271,11 @@
{
crfree(req->ktr_cred);
- mtx_lock(&Giant);
- vrele(req->ktr_vp);
- mtx_unlock(&Giant);
+ if (req->ktr_vp != NULL) {
+ mtx_lock(&Giant);
+ vrele(req->ktr_vp);
+ mtx_unlock(&Giant);
+ }
mtx_lock(&ktrace_mtx);
STAILQ_INSERT_HEAD(&ktr_free, req, ktr_list);
mtx_unlock(&ktrace_mtx);
==== //depot/projects/trustedbsd/mac/sys/kern/kern_shutdown.c#11 (text+ko) ====
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_shutdown.c 8.3 (Berkeley) 1/21/94
- * $FreeBSD: src/sys/kern/kern_shutdown.c,v 1.131 2002/07/17 02:23:44 gallatin Exp $
+ * $FreeBSD: src/sys/kern/kern_shutdown.c,v 1.133 2002/08/01 13:39:33 jhb Exp $
*/
#include "opt_ddb.h"
==== //depot/projects/trustedbsd/mac/sys/kern/subr_mbuf.c#19 (text+ko) ====
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/kern/subr_mbuf.c,v 1.25 2002/07/31 01:42:19 rwatson Exp $
+ * $FreeBSD: src/sys/kern/subr_mbuf.c,v 1.26 2002/08/01 14:24:41 bmilekic Exp $
*/
#include "opt_mac.h"
@@ -805,11 +805,6 @@
struct mb_bucket *bucket;
u_int owner;
-#ifdef MAC
- if (type != MT_NOTMBUF && ((struct mbuf *)m)->m_flags & M_PKTHDR)
- mac_destroy_mbuf((struct mbuf *)m);
-#endif
-
bucket = mb_list->ml_btable[MB_BUCKET_INDX(m, mb_list)];
/*
@@ -1266,8 +1261,8 @@
_mbhdr_setup(mb, type);
#ifdef MAC
if (mac_init_mbuf(mb, how) != 0) {
- mb_free(&mb_list_mbuf, mb, type, 0, NULL);
- return (NULL);
+ m_free(mb);
+ return NULL;
}
#endif
}
@@ -1315,8 +1310,8 @@
_mbhdr_setup(mb, type);
#ifdef MAC
if (mac_init_mbuf(mb, how) != 0) {
- mb_free(&mb_list_mbuf, mb, type, 0, NULL);
- return (NULL);
+ m_free(mb);
+ return NULL;
}
#endif
bzero(mtod(mb, caddr_t), MHLEN);
@@ -1345,7 +1340,11 @@
m_freem(mb->m_pkthdr.aux);
mb->m_pkthdr.aux = NULL;
}
-
+#ifdef MAC
+ if ((mb->m_flags & M_PKTHDR) &&
+ (mb->m_pkthdr.label.l_flags & MAC_FLAG_INITIALIZED))
+ mac_destroy_mbuf(mb);
+#endif
nb = mb->m_next;
if ((mb->m_flags & M_EXT) != 0) {
MEXT_REM_REF(mb);
@@ -1392,6 +1391,11 @@
m_freem(mb->m_pkthdr.aux);
mb->m_pkthdr.aux = NULL;
}
+#ifdef MAC
+ if ((mb->m_flags & M_PKTHDR) &&
+ (mb->m_pkthdr.label.l_flags & MAC_FLAG_INITIALIZED))
+ mac_destroy_mbuf(mb);
+#endif
persist = 0;
m = mb;
mb = mb->m_next;
@@ -1458,6 +1462,12 @@
_mcl_setup(mb);
_mext_init_ref(mb, &cl_refcntmap[cl2ref(mb->m_ext.ext_buf)]);
}
+#ifdef MAC
+ if ((type & M_PKTHDR) && (mac_init_mbuf(mb, how) != 0)) {
+ m_free(mb);
+ return NULL;
+ }
+#endif
return (mb);
}
==== //depot/projects/trustedbsd/mac/sys/kern/subr_taskqueue.c#4 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/kern/subr_taskqueue.c,v 1.12 2002/04/04 21:03:26 jhb Exp $
+ * $FreeBSD: src/sys/kern/subr_taskqueue.c,v 1.14 2002/08/01 13:37:22 jhb Exp $
*/
#include <sys/param.h>
@@ -94,6 +94,7 @@
{
mtx_lock(&queue->tq_mutex);
+ KASSERT(queue->tq_draining == 0, ("free'ing a draining taskqueue"));
queue->tq_draining = 1;
mtx_unlock(&queue->tq_mutex);
==== //depot/projects/trustedbsd/mac/sys/kern/uipc_socket.c#31 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)uipc_socket.c 8.3 (Berkeley) 4/15/94
- * $FreeBSD: src/sys/kern/uipc_socket.c,v 1.127 2002/07/31 03:03:22 rwatson Exp $
+ * $FreeBSD: src/sys/kern/uipc_socket.c,v 1.128 2002/08/01 03:45:40 rwatson Exp $
*/
#include "opt_inet.h"
==== //depot/projects/trustedbsd/mac/sys/kern/vfs_syscalls.c#70 (text+ko) ====
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.275 2002/08/01 01:29:03 rwatson Exp $
+ * $FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.276 2002/08/01 03:50:08 rwatson Exp $
*/
/* For 4.3 integer FS ID compatibility */
==== //depot/projects/trustedbsd/mac/sys/netinet/ip_icmp.c#13 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ip_icmp.c 8.2 (Berkeley) 1/4/94
- * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.69 2002/03/22 16:45:54 ru Exp $
+ * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.70 2002/08/01 03:53:04 rwatson Exp $
*/
#include "opt_ipsec.h"
@@ -164,6 +164,9 @@
#endif
if (m == NULL)
goto freeit;
+#ifdef MAC
+ mac_create_mbuf_netlayer(n, m);
+#endif
icmplen = min(oiplen + 8, oip->ip_len);
if (icmplen < sizeof(struct ip))
panic("icmp_error: bad length");
==== //depot/projects/trustedbsd/mac/sys/netinet/tcp_subr.c#17 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_subr.c 8.2 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.139 2002/07/31 19:06:49 rwatson Exp $
+ * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.140 2002/08/01 03:54:43 rwatson Exp $
*/
#include "opt_compat.h"
==== //depot/projects/trustedbsd/mac/usr.bin/sockstat/sockstat.c#2 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/sockstat/sockstat.c,v 1.1 2002/07/31 12:32:03 des Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/sockstat/sockstat.c,v 1.2 2002/08/01 11:02:30 des Exp $");
#include <sys/param.h>
#include <sys/socket.h>
@@ -258,6 +258,20 @@
}
if ((inp->inp_vflag & vflag) == 0)
continue;
+ if (inp->inp_vflag & INP_IPV4) {
+ if ((inp->inp_fport == 0 && !opt_l) ||
+ (inp->inp_fport != 0 && !opt_c))
+ continue;
+ } else if (inp->inp_vflag & INP_IPV6) {
+ if ((inp->in6p_fport == 0 && !opt_l) ||
+ (inp->in6p_fport != 0 && !opt_c))
+ continue;
+ } else {
+ if (opt_v)
+ warnx("invalid vflag 0x%x", inp->inp_vflag);
+ free(sock);
+ continue;
+ }
if ((sock = calloc(1, sizeof *sock)) == NULL)
err(1, "malloc()");
sock->socket = so->xso_so;
@@ -274,11 +288,6 @@
&inp->in6p_laddr, inp->in6p_lport);
sockaddr(&sock->faddr, sock->family,
&inp->in6p_faddr, inp->in6p_fport);
- } else {
- if (opt_v)
- warnx("invalid vflag 0x%x", inp->inp_vflag);
- free(sock);
- continue;
}
sock->vflag = inp->inp_vflag;
sock->protoname = protoname;
@@ -348,6 +357,9 @@
warnx("struct xunpcb size mismatch");
goto out;
}
+ if ((xup->xu_unp.unp_conn == NULL && !opt_l) ||
+ (xup->xu_unp.unp_conn != NULL && !opt_c))
+ continue;
if ((sock = calloc(1, sizeof *sock)) == NULL)
err(1, "malloc()");
sock->socket = xup->xu_socket.xso_so;
@@ -454,7 +466,6 @@
setpassent(1);
for (xf = xfiles, n = 0; n < nxfiles; ++n, ++xf) {
hash = (int)((uintptr_t)xf->xf_data % HASHSIZE);
- /*xprintf("%p %d\n", xf->xf_data, hash);*/
for (s = sockhash[hash]; s != NULL; s = s->next)
if (s->socket == xf->xf_data)
break;
==== //depot/projects/trustedbsd/mac/usr.sbin/sysinstall/doc.c#3 (text+ko) ====
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated for what's essentially a complete rewrite.
*
- * $FreeBSD: src/usr.sbin/sysinstall/doc.c,v 1.30 2002/04/23 22:16:41 obrien Exp $
+ * $FreeBSD: src/usr.sbin/sysinstall/doc.c,v 1.31 2002/08/01 10:20:59 blackend Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -105,12 +105,12 @@
else if (strstr(str, "FAQ")) {
where = strcpy(target, "/usr/share/doc/faq/index.html");
if (!file_readable(target))
- where = strcpy(target, "http://www.freebsd.org/FAQ");
+ where = strcpy(target, "http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq");
}
else if (strstr(str, "Handbook")) {
where = strcpy(target, "/usr/share/doc/handbook/index.html");
if (!file_readable(target))
- where = strcpy(target, "http://www.freebsd.org/handbook");
+ where = strcpy(target, "http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook");
}
if (where) {
sprintf(tmp, "%s %s", browser, target);
To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-cvs" in the body of the message
More information about the trustedbsd-cvs
mailing list