From owner-p4-projects@FreeBSD.ORG Wed Mar 30 05:10:56 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B5B916A4D0; Wed, 30 Mar 2005 05:10:56 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1A4DC16A4CF for ; Wed, 30 Mar 2005 05:10:56 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1322B43D45 for ; Wed, 30 Mar 2005 05:10:55 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2U5AtaJ004472 for ; Wed, 30 Mar 2005 05:10:55 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2U5AsVP004469 for perforce@freebsd.org; Wed, 30 Mar 2005 05:10:54 GMT (envelope-from sam@freebsd.org) Date: Wed, 30 Mar 2005 05:10:54 GMT Message-Id: <200503300510.j2U5AsVP004469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 74077 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2005 05:10:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=74077 Change 74077 by sam@sam_ebb on 2005/03/30 05:10:04 IFC @ 74076 Affected files ... .. //depot/projects/wifi/Makefile.inc1#15 integrate .. //depot/projects/wifi/contrib/telnet/telnet/telnet.c#3 integrate .. //depot/projects/wifi/etc/netstart#2 integrate .. //depot/projects/wifi/gnu/lib/libstdc++/config.h#3 integrate .. //depot/projects/wifi/lib/libarchive/Makefile#7 integrate .. //depot/projects/wifi/lib/libarchive/archive_read_extract.c#4 integrate .. //depot/projects/wifi/lib/libugidfw/Makefile#2 integrate .. //depot/projects/wifi/lib/libugidfw/ugidfw.c#2 integrate .. //depot/projects/wifi/libexec/rexecd/rexecd.c#5 integrate .. //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 integrate .. //depot/projects/wifi/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#2 integrate .. //depot/projects/wifi/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#2 integrate .. //depot/projects/wifi/sbin/camcontrol/camcontrol.8#3 integrate .. //depot/projects/wifi/sbin/camcontrol/camcontrol.c#2 integrate .. //depot/projects/wifi/sbin/mount/mount.c#4 integrate .. //depot/projects/wifi/sbin/mount_ufs/mount_ufs.c#2 integrate .. //depot/projects/wifi/share/man/man4/polling.4#4 integrate .. //depot/projects/wifi/share/man/man4/xl.4#6 integrate .. //depot/projects/wifi/share/man/man9/make_dev.9#2 integrate .. //depot/projects/wifi/sys/cam/scsi/scsi_cd.c#4 integrate .. //depot/projects/wifi/sys/coda/coda_vnops.c#9 integrate .. //depot/projects/wifi/sys/compat/linux/linux_getcwd.c#3 integrate .. //depot/projects/wifi/sys/compat/ndis/kern_ndis.c#9 integrate .. //depot/projects/wifi/sys/compat/ndis/ndis_var.h#8 integrate .. //depot/projects/wifi/sys/compat/ndis/ntoskrnl_var.h#9 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_hal.c#7 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ndis.c#9 integrate .. //depot/projects/wifi/sys/compat/ndis/subr_ntoskrnl.c#10 integrate .. //depot/projects/wifi/sys/conf/files.amd64#8 integrate .. //depot/projects/wifi/sys/conf/files.i386#13 integrate .. //depot/projects/wifi/sys/conf/kern.post.mk#5 integrate .. //depot/projects/wifi/sys/conf/kern.pre.mk#6 integrate .. //depot/projects/wifi/sys/conf/majors#4 delete .. //depot/projects/wifi/sys/conf/majors.awk#2 delete .. //depot/projects/wifi/sys/dev/aac/aac.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi.c#10 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_cpu.c#4 integrate .. //depot/projects/wifi/sys/dev/acpica/acpi_perf.c#5 integrate .. //depot/projects/wifi/sys/dev/acpica/acpivar.h#7 integrate .. //depot/projects/wifi/sys/dev/an/if_an.c#3 integrate .. //depot/projects/wifi/sys/dev/ciss/ciss.c#5 integrate .. //depot/projects/wifi/sys/dev/fb/vga.c#3 integrate .. //depot/projects/wifi/sys/dev/firewire/fwohci.c#3 integrate .. //depot/projects/wifi/sys/dev/hptmv/entry.c#6 integrate .. //depot/projects/wifi/sys/dev/if_ndis/if_ndis.c#12 integrate .. //depot/projects/wifi/sys/dev/if_ndis/if_ndis_pci.c#6 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb.c#4 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb.h#3 integrate .. //depot/projects/wifi/sys/dev/ixgb/if_ixgb_osdep.h#3 integrate .. //depot/projects/wifi/sys/dev/mlx/mlx.c#2 integrate .. //depot/projects/wifi/sys/dev/mlx/mlx_pci.c#4 integrate .. //depot/projects/wifi/sys/dev/mse/msevar.h#3 integrate .. //depot/projects/wifi/sys/dev/nge/if_nge.c#5 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard_cis.c#5 integrate .. //depot/projects/wifi/sys/dev/pccard/pccard_cis_quirks.c#3 integrate .. //depot/projects/wifi/sys/dev/pci/pci.c#12 integrate .. //depot/projects/wifi/sys/dev/pci/pcireg.h#3 integrate .. //depot/projects/wifi/sys/dev/random/randomdev_soft.c#5 integrate .. //depot/projects/wifi/sys/dev/sym/sym_hipd.c#4 integrate .. //depot/projects/wifi/sys/dev/twa/twa.c#3 integrate .. //depot/projects/wifi/sys/dev/usb/usb.c#6 integrate .. //depot/projects/wifi/sys/dev/wi/if_wi_pccard.c#5 integrate .. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#18 integrate .. //depot/projects/wifi/sys/fs/hpfs/hpfs_vnops.c#9 integrate .. //depot/projects/wifi/sys/fs/msdosfs/msdosfs_lookup.c#3 integrate .. //depot/projects/wifi/sys/fs/ntfs/ntfs_vnops.c#11 integrate .. //depot/projects/wifi/sys/fs/nwfs/nwfs_vnops.c#8 integrate .. //depot/projects/wifi/sys/fs/portalfs/portal_vnops.c#5 integrate .. //depot/projects/wifi/sys/fs/pseudofs/pseudofs_vnops.c#6 integrate .. //depot/projects/wifi/sys/fs/smbfs/smbfs_vnops.c#10 integrate .. //depot/projects/wifi/sys/fs/udf/udf_vnops.c#11 integrate .. //depot/projects/wifi/sys/fs/unionfs/union_vnops.c#11 integrate .. //depot/projects/wifi/sys/gdb/gdb_main.c#4 integrate .. //depot/projects/wifi/sys/geom/geom_subr.c#3 integrate .. //depot/projects/wifi/sys/geom/mirror/g_mirror.c#10 integrate .. //depot/projects/wifi/sys/geom/mirror/g_mirror_ctl.c#6 integrate .. //depot/projects/wifi/sys/geom/raid3/g_raid3.c#12 integrate .. //depot/projects/wifi/sys/geom/raid3/g_raid3_ctl.c#5 integrate .. //depot/projects/wifi/sys/gnu/ext2fs/ext2_lookup.c#4 integrate .. //depot/projects/wifi/sys/i386/cpufreq/powernow.c#1 branch .. //depot/projects/wifi/sys/i386/i386/bios.c#3 integrate .. //depot/projects/wifi/sys/isofs/cd9660/cd9660_lookup.c#2 integrate .. //depot/projects/wifi/sys/kern/kern_conf.c#8 integrate .. //depot/projects/wifi/sys/kern/kern_lock.c#7 integrate .. //depot/projects/wifi/sys/kern/kern_lockf.c#5 integrate .. //depot/projects/wifi/sys/kern/kern_tc.c#2 integrate .. //depot/projects/wifi/sys/kern/subr_trap.c#5 integrate .. //depot/projects/wifi/sys/kern/tty.c#7 integrate .. //depot/projects/wifi/sys/kern/vfs_cache.c#6 integrate .. //depot/projects/wifi/sys/kern/vfs_lookup.c#9 integrate .. //depot/projects/wifi/sys/kern/vfs_subr.c#18 integrate .. //depot/projects/wifi/sys/modules/cpufreq/Makefile#3 integrate .. //depot/projects/wifi/sys/modules/hpfs/Makefile#2 integrate .. //depot/projects/wifi/sys/net/bpf.c#8 integrate .. //depot/projects/wifi/sys/net/rtsock.c#5 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_freebsd.c#16 integrate .. //depot/projects/wifi/sys/net80211/ieee80211_freebsd.h#13 integrate .. //depot/projects/wifi/sys/netinet/igmp.c#3 integrate .. //depot/projects/wifi/sys/netinet/ip_fastfwd.c#4 integrate .. //depot/projects/wifi/sys/netinet/raw_ip.c#4 integrate .. //depot/projects/wifi/sys/netinet/tcp_usrreq.c#10 integrate .. //depot/projects/wifi/sys/netinet/udp_usrreq.c#5 integrate .. //depot/projects/wifi/sys/netinet6/raw_ip6.c#5 integrate .. //depot/projects/wifi/sys/nfs4client/nfs4_vnops.c#10 integrate .. //depot/projects/wifi/sys/nfsclient/nfs_vnops.c#17 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_srvsubs.c#6 integrate .. //depot/projects/wifi/sys/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/wifi/sys/pc98/pc98/pc98_machdep.c#3 integrate .. //depot/projects/wifi/sys/pci/if_sis.c#4 integrate .. //depot/projects/wifi/sys/pci/if_sk.c#11 integrate .. //depot/projects/wifi/sys/pci/if_ti.c#6 integrate .. //depot/projects/wifi/sys/pci/if_xl.c#5 integrate .. //depot/projects/wifi/sys/pci/if_xlreg.h#3 integrate .. //depot/projects/wifi/sys/sys/conf.h#8 integrate .. //depot/projects/wifi/sys/sys/lockmgr.h#5 integrate .. //depot/projects/wifi/sys/sys/namei.h#4 integrate .. //depot/projects/wifi/sys/sys/systm.h#10 integrate .. //depot/projects/wifi/sys/sys/vnode.h#19 integrate .. //depot/projects/wifi/sys/ufs/ffs/ffs_vfsops.c#18 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_extattr.c#7 integrate .. //depot/projects/wifi/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/wifi/tools/tools/ath/80211watch.c#2 integrate .. //depot/projects/wifi/usr.bin/stat/stat.1#2 integrate .. //depot/projects/wifi/usr.bin/tar/bsdtar.1#5 integrate .. //depot/projects/wifi/usr.bin/truss/extern.h#2 integrate .. //depot/projects/wifi/usr.bin/truss/main.c#2 integrate .. //depot/projects/wifi/usr.bin/truss/setup.c#2 integrate .. //depot/projects/wifi/usr.sbin/Makefile#7 integrate .. //depot/projects/wifi/usr.sbin/config/main.c#2 integrate .. //depot/projects/wifi/usr.sbin/memcontrol/memcontrol.c#3 integrate .. //depot/projects/wifi/usr.sbin/mtree/Makefile#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/compare.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/create.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/misc.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/mtree.8#4 integrate .. //depot/projects/wifi/usr.sbin/mtree/mtree.h#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/spec.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/specspec.c#2 integrate .. //depot/projects/wifi/usr.sbin/mtree/test/test03.sh#2 integrate .. //depot/projects/wifi/usr.sbin/pciconf/pciconf.c#2 integrate .. //depot/projects/wifi/usr.sbin/sysinstall/menus.c#6 integrate .. //depot/projects/wifi/usr.sbin/syslogd/syslogd.c#6 integrate Differences ... ==== //depot/projects/wifi/Makefile.inc1#15 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.489 2005/03/22 14:22:47 ru Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.490 2005/03/27 19:35:09 ru Exp $ # # Make command line options: # -DNO_DYNAMICROOT do not link /bin and /sbin dynamically @@ -205,7 +205,7 @@ PATH=${TMPPATH} WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP} -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" # 32 bit world LIB32TMP= ${OBJTREE}${.CURDIR}/lib32 @@ -382,7 +382,7 @@ @echo ">>> stage 4.4: building everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${WMAKE} par-all -.if ${MACHINE_ARCH} == "amd64" +.if ${TARGET_ARCH} == "amd64" build32: @echo @echo "--------------------------------------------------------------" @@ -454,7 +454,7 @@ WMAKE_TGTS+= _cross-tools .endif WMAKE_TGTS+= _includes _libraries _depend everything -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) WMAKE_TGTS+= build32 .endif @@ -540,7 +540,7 @@ @echo ">>> Installing everything" @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install -.if ${MACHINE_ARCH} == "amd64" && defined(WITH_LIB32) +.if ${TARGET_ARCH} == "amd64" && defined(WITH_LIB32) ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32 .endif ==== //depot/projects/wifi/contrib/telnet/telnet/telnet.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ #endif #endif #include -__FBSDID("$FreeBSD: src/contrib/telnet/telnet/telnet.c,v 1.15 2005/02/28 12:46:53 tobez Exp $"); +__FBSDID("$FreeBSD: src/contrib/telnet/telnet/telnet.c,v 1.16 2005/03/28 14:45:12 nectar Exp $"); #include @@ -1326,6 +1326,7 @@ } unsigned char slc_reply[128]; +unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)]; unsigned char *slc_replyp; void @@ -1341,6 +1342,14 @@ void slc_add_reply(unsigned char func, unsigned char flags, cc_t value) { + /* A sequence of up to 6 bytes my be written for this member of the SLC + * suboption list by this function. The end of negotiation command, + * which is written by slc_end_reply(), will require 2 additional + * bytes. Do not proceed unless there is sufficient space for these + * items. + */ + if (&slc_replyp[6+2] > slc_reply_eom) + return; if ((*slc_replyp++ = func) == IAC) *slc_replyp++ = IAC; if ((*slc_replyp++ = flags) == IAC) @@ -1354,6 +1363,9 @@ { int len; + /* The end of negotiation command requires 2 bytes. */ + if (&slc_replyp[2] > slc_reply_eom) + return; *slc_replyp++ = IAC; *slc_replyp++ = SE; len = slc_replyp - slc_reply; @@ -1471,8 +1483,8 @@ } } -#define OPT_REPLY_SIZE 256 -unsigned char *opt_reply; +#define OPT_REPLY_SIZE (2 * SUBBUFSIZE) +unsigned char *opt_reply = NULL; unsigned char *opt_replyp; unsigned char *opt_replyend; @@ -1525,9 +1537,9 @@ return; } vp = env_getvalue(ep); - if (opt_replyp + (vp ? strlen((char *)vp) : 0) + - strlen((char *)ep) + 6 > opt_replyend) - { + if (opt_replyp + (vp ? 2 * strlen((char *)vp) : 0) + + 2 * strlen((char *)ep) + 6 > opt_replyend) + { int len; opt_replyend += OPT_REPLY_SIZE; len = opt_replyend - opt_reply; @@ -1551,6 +1563,8 @@ *opt_replyp++ = ENV_USERVAR; for (;;) { while ((c = *ep++)) { + if (opt_replyp + (2 + 2) > opt_replyend) + return; switch(c&0xff) { case IAC: *opt_replyp++ = IAC; @@ -1565,6 +1579,8 @@ *opt_replyp++ = c; } if ((ep = vp)) { + if (opt_replyp + (1 + 2 + 2) > opt_replyend) + return; #ifdef OLD_ENVIRON if (telopt_environ == TELOPT_OLD_ENVIRON) *opt_replyp++ = old_env_value; @@ -1595,7 +1611,9 @@ { int len; - len = opt_replyp - opt_reply + 2; + if (opt_replyp + 2 > opt_replyend) + return; + len = opt_replyp + 2 - opt_reply; if (emptyok || len > 6) { *opt_replyp++ = IAC; *opt_replyp++ = SE; ==== //depot/projects/wifi/etc/netstart#2 (text+ko) ==== @@ -24,12 +24,12 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/netstart,v 1.64 2004/02/10 19:10:34 des Exp $ +# $FreeBSD: src/etc/netstart,v 1.65 2005/03/26 20:10:24 cperciva Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # # This file is NOT called by any of the other scripts - it has been -# obsoleted by /etc/rc.network and is provided here only for user +# obsoleted by /etc/rc.d/* and is provided here only for user # convenience (if you're sitting in single user mode and wish to start # the network by hand, this script will do it for you). # ==== //depot/projects/wifi/gnu/lib/libstdc++/config.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.10 2005/01/26 14:23:31 kan Exp $ */ +/* $FreeBSD: src/gnu/lib/libstdc++/config.h,v 1.11 2005/03/26 08:27:53 das Exp $ */ /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ @@ -285,7 +285,7 @@ #define HAVE_FREXPF 1 /* Define to 1 if you have the `frexpl' function. */ -/* #undef HAVE_FREXPL */ +#define HAVE_FREXPL 1 /* Define to 1 if you have the `fwide' function. */ #define HAVE_FWIDE 1 @@ -357,7 +357,7 @@ #define HAVE_LDEXPF 1 /* Define to 1 if you have the `ldexpl' function. */ -/* #undef HAVE_LDEXPL */ +#define HAVE_LDEXPL 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_LIBINTL_H */ ==== //depot/projects/wifi/lib/libarchive/Makefile#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/Makefile,v 1.31 2005/03/13 02:53:42 kientzle Exp $ +# $FreeBSD: src/lib/libarchive/Makefile,v 1.32 2005/03/29 05:24:08 kientzle Exp $ # # Use "make distfile" to build a conventional tar.gz archive @@ -7,7 +7,7 @@ LIB= archive -VERSION= 1.02.013 +VERSION= 1.02.016 ARCHIVE_API_FEATURE= 2 ARCHIVE_API_VERSION= 1 SHLIB_MAJOR= ${ARCHIVE_API_VERSION} ==== //depot/projects/wifi/lib/libarchive/archive_read_extract.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.37 2005/03/13 02:53:42 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_extract.c,v 1.38 2005/03/29 05:24:08 kientzle Exp $"); #include #ifdef HAVE_SYS_ACL_H @@ -185,15 +185,16 @@ /* * If pathname is longer than PATH_MAX, record starting directory - * and move to a suitable intermediate dir. + * and chdir to a suitable intermediate dir. */ if (strlen(archive_entry_pathname(entry)) > PATH_MAX) { + char *intdir, *tail; + /* * Yes, the copy here is necessary because we edit * the pathname in-place to create intermediate dirnames. */ original_filename = strdup(archive_entry_pathname(entry)); - char *intdir, *tail; restore_pwd = open(".", O_RDONLY); /* @@ -203,28 +204,28 @@ intdir = tail = original_filename; while (strlen(tail) > PATH_MAX) { intdir = tail; + + /* Locate a dir prefix shorter than PATH_MAX. */ tail = intdir + PATH_MAX - 8; while (tail > intdir && *tail != '/') tail--; if (tail <= intdir) { - close(restore_pwd); archive_set_error(a, EPERM, "Path element too long"); - return (ARCHIVE_WARN); + ret = ARCHIVE_WARN; + goto cleanup; } + + /* Create intdir and chdir to it. */ *tail = '\0'; /* Terminate dir portion */ - if (create_dir(a, intdir, flags) != ARCHIVE_OK) { - fchdir(restore_pwd); - close(restore_pwd); - return (ARCHIVE_WARN); - } - if (chdir(intdir) != 0) { + ret = create_dir(a, intdir, flags); + if (ret == ARCHIVE_OK && chdir(intdir) != 0) { archive_set_error(a, errno, "Couldn't chdir"); - fchdir(restore_pwd); - close(restore_pwd); - return (ARCHIVE_WARN); + ret = ARCHIVE_WARN; } *tail = '/'; /* Restore the / we removed. */ + if (ret != ARCHIVE_OK) + goto cleanup; tail++; } archive_entry_set_pathname(entry, tail); @@ -266,9 +267,12 @@ } } + +cleanup: /* If we changed directory above, restore it here. */ if (restore_pwd >= 0 && original_filename != NULL) { fchdir(restore_pwd); + close(restore_pwd); archive_entry_copy_pathname(entry, original_filename); free(original_filename); } ==== //depot/projects/wifi/lib/libugidfw/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libugidfw/Makefile,v 1.5 2004/02/25 03:24:39 rwatson Exp $ +# $FreeBSD: src/lib/libugidfw/Makefile,v 1.6 2005/03/28 09:38:43 pjd Exp $ LIB= ugidfw SHLIB_MAJOR= 1 @@ -9,7 +9,7 @@ bsde_rule_to_string.3 libugidfw.3 MLINKS= bsde_get_rule.3 bsde_add_rule.3 -MLINKS= bsde_get_rule.3 bsde_delete_rule.3 +MLINKS+= bsde_get_rule.3 bsde_delete_rule.3 MLINKS+= bsde_get_rule.3 bsde_set_rule.3 MLINKS+= bsde_get_rule_count.3 bsde_get_rule_slots.3 MLINKS+= bsde_parse_rule.3 bsde_parse_rule_string.3 ==== //depot/projects/wifi/lib/libugidfw/ugidfw.c#2 (text+ko) ==== @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libugidfw/ugidfw.c,v 1.7 2004/10/21 11:21:13 rwatson Exp $ + * $FreeBSD: src/lib/libugidfw/ugidfw.c,v 1.8 2005/03/28 09:37:44 pjd Exp $ */ #include #include @@ -743,7 +743,7 @@ } if (rulenum != NULL) - rule_slots; + *rulenum = rule_slots; return (0); } ==== //depot/projects/wifi/libexec/rexecd/rexecd.c#5 (text+ko) ==== @@ -42,7 +42,7 @@ static char sccsid[] = "@(#)rexecd.c 8.1 (Berkeley) 6/4/93"; #endif static const char rcsid[] = - "$FreeBSD: src/libexec/rexecd/rexecd.c,v 1.36 2005/03/21 08:01:14 das Exp $"; + "$FreeBSD: src/libexec/rexecd/rexecd.c,v 1.37 2005/03/27 13:59:44 nectar Exp $"; #endif /* not lint */ #include @@ -135,7 +135,9 @@ char *cmdbuf, *cp; int maxcmdlen; char user[16], pass[16]; - struct passwd *pwd; + struct passwd *pwd, pwd_storage; + char *pwdbuf; + int pwdbuflen; int fd, r, sd; u_short port; int pv[2], pid, cc, nfds; @@ -190,7 +192,20 @@ getstr(cmdbuf, maxcmdlen, "command"); (void) alarm(0); - if ((pwd = getpwnam(user)) == NULL || (pwd->pw_uid = 0 && no_uid_0) || + pwdbuflen = BUFSIZ; + pwdbuf = NULL; + pwd = NULL; + r = ERANGE; + while (pwd == NULL && r == ERANGE) { + pwdbuflen <<= 1; + if ((pwdbuf = reallocf(pwdbuf, pwdbuflen)) == NULL) { + syslog(LOG_ERR, "Cannot allocate memory"); + error("Cannot allocate memory.\n"); + exit(1); + } + r = getpwnam_r(user, &pwd_storage, pwdbuf, pwdbuflen, &pwd); + } + if (pwd == NULL || (pwd->pw_uid == 0 && no_uid_0) || !pam_ok(pam_start("rexecd", user, &pamc, &pamh)) || !pam_ok(pam_set_item(pamh, PAM_RHOST, remote)) || !pam_ok(pam_set_item(pamh, PAM_AUTHTOK, pass)) || ==== //depot/projects/wifi/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 (text+ko) ==== @@ -3,7 +3,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.834 2005/03/23 20:42:09 hrs Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.835 2005/03/27 17:25:18 delphij Exp $ 2000 @@ -893,7 +893,7 @@ Korea. &merged; The option of the &man.xargs.1; command - has been changed to confirm IEEE Std 1003.1-2004. + has been changed to conform IEEE Std 1003.1-2004. The standard requires that the constructed arguments cannot grow larger than 255 bytes. ==== //depot/projects/wifi/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#2 (text+ko) ==== @@ -1,8 +1,8 @@ @@ -16,6 +16,7 @@ 2002 2003 2004 + 2005 The FreeBSD Documentation Project ==== //depot/projects/wifi/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#2 (text+ko) ==== @@ -1,14 +1,14 @@ &os;/&arch; &release.current; 发行说明 The &os; Project - $FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.1 2004/10/15 06:43:48 delphij Exp $ + $FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.2 2005/03/27 16:51:55 delphij Exp $ 2000 @@ -16,15 +16,25 @@ 2002 2003 2004 + 2005 The &os; Documentation Project + + &tm-attrib.freebsd; + &tm-attrib.ibm; + &tm-attrib.ieee; + &tm-attrib.intel; + &tm-attrib.sparc; + &tm-attrib.general; + + - &os; &release.current; 的发行说明包括了自 &release.prev; 以来 - &os; 基本系统所进行的改动的总结。 - 这份文档列举了对上一发行版本适用的所有安全公告,以及 - &os; 内核和用户程序所作的重要修改。 - 对于升级时需要注意的一些问题,也进行了简略的介绍。 + 这份 &os; &release.current; 的发行说明, 概括了 &os; + 基本系统自 &release.branch; 创建以来所做的改动。 + 本文档列举了自前一发行版本以来所有适用的安全公告, 以及对于 + &os; 内核以及系统附带的应用程序所做的重要修改。 + 在升级时所需要注意的一些问题, 也进行了简略的介绍。 @@ -35,12 +45,22 @@ &release.current; 的发行说明。 它描述了最近刚刚加入、修改或删除了的 &os; 特性的说明。 同时,它也将给出如何从先前的 &os; 版本完成升级的说明。 +这篇文档所介绍的 &release.type; 软件包, + 介绍了 &release.branch; 开发分支自 &release.branch; + 创建以来的进展。 关于这一分支上预编译的、 二进制版本的 + &release.type; 软件包, 可以在 + 找到。 + +]]> + 这份 &release.type; 版本是正在进行开发的 &release.branch; - 分支在 &release.prev; 和未来的 &release.next; 之间的一个快照。 - 预先编译好的 &release.type; 安装包可以在 - 找到。 + 这份说明所说的 &release.type; 版本, + 是在 &release.branch; 开发分支上 &release.prev; 到未来的 &release.next; + 上的一点。 这一开发分支上预编译的二进制形式的 &release.type; + 安装包, 可以在 找到。 ]]> @@ -84,340 +104,114 @@ 安全公告 - 在 &man.mksnap.ffs.8; 中的一处缺陷被改正; - 这一缺陷会导致创建快照时将文件系统的权限标记值 (flags) 恢复到默认状态。 - 上述问题可能引发的后果与如何利用这一缺陷有关,但它至少可以被用来绕过基于扩展访问控制表的安全机制, - 以及在不应受信任的文件系统上启用 setuid 支持。 - 这一问题也会影响 &man.dump.8; 的 - 选项,因为它也会使用 &man.mksnap.ffs.8;。 - 需要说明的是, &man.mksnap.ffs.8; 在通常情况下只有超级用户和 - operator 组的成员才能够使用。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:01 - - 修正了一个 System V 共享内存接口 - (特指 &man.shmat.2; 系统调用) 的问题。 - 这一问题会导致共享内存段引用到未分配的内核内存。 - 于是,这将导致本地的攻击者在没有得到授权的情况下访问一部分内核内存, - 其结果是可能会泄露一些敏感信息,绕过访问控制机制,或导致特权提升。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:02。 + 在 &man.fetch.1; 工具中发现了一处问题, + 它可能导致恶意的 HTTP 服务器覆盖客户程序任意部分的内存, + 这一问题已经得到修复。 要了解更多信息, 请参见安全公告 + FreeBSD-SA-04:16.fetch。 &merged; - 修正了 &man.jail.attach.2; 系统调用中的一处编码失误。 - 这个失误有可能允许在 &man.jail.8; 环境中以超级用户身份运行的进程修改其根目录到另一个 - jail 中,进而获得在那个 jail 中的完全读写权限。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:03 - - 通过限制同一时间段内允许的错位分片数目,一种潜在的针对 &os; - TCP 协议栈的非对称带宽拒绝服务攻击得以避免。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:04。 + 在 &man.procfs.5; 和 &man.linprocfs.5; + 中发现了一处问题, 它能够允许恶意的本地用户读取部分内核内存, + 或通过造成系统 panic 来实施本地拒绝服务攻击, + 这一问题已经得到修复。 要了解更多信息, 请参见安全公告 + FreeBSD-SA-04:17.procfs。 &merged; - OpenSSL 的 SSL/TLS - ChangeCipherSpec 消息处理过程中的一个问题可能导致对零指针的操作, - 现在已经得到纠正。 这一问题可能引致远程攻击者发动攻击并导致采用 - OpenSSL 的应用程序崩溃,从而完成拒绝服务攻击。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:05。 - &merged; - - 修正了一处 &man.setsockopt.2; 系统调用在处理某些 IPv6 socket - 选项时的编程疏忽。 这一问题使得本地的攻击者能够引发系统 panic, - 并且,还有可能在未经授权的情况下访问内核内存的某些部分, - 这可能造成敏感信息的泄漏、绕过访问控制机制,或导致特权提升。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:06 - - 修正了 CVS 中的两处程序设计缺陷。 - 这些缺陷能够导致服务器覆盖客户机上的任意文件,以及允许客户机在访问远程代码库的过程中读取服务器上的任意文件。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:07。 &merged; - - 修正了 Heimdal 中对于默认的跨域验证没有实施有效的检查的问题。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:08。 &merged; - - 修正了 CVS 允许恶意的客户覆盖服务器任意部分的问题。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:10。 &merged; - - 修正了 &man.msync.2; 系统调用中的一个潜在的与 - MS_INVALIDATE 操作有关的缓存一致性破坏问题。 - 不过,修复这一安全问题的负面影响是, MS_INVALIDATE - 不再保证该范围内所有页都失效。 - 对于不担心这一安全问题, 且希望保持原先的 MS_INVALIDATE - 语义的用户可以考虑将 vm.old_msync sysctl 设置为 1 - 来还原先前的 (同时也是不安全的) 行为。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:11。 &merged; - - 修正了 &man.jail.2; 系统调用中的一处程序设计失误。 - 这一问题可能导致 jail 外面的进程修改 jail 中的路由表。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:12。 &merged; - - 修正了在处理某些 Linux 系统调用时没有进行有效的验证而导致的访问任意内存范围的问题。 - 关于这一问题的详情,请参考安全公告 FreeBSD-SA-04:13。 &merged; - - 通过将 CVS 升级到 1.11.17, - 修正了 CVS 中可能导致信息泄露、 - 拒绝服务, 或执行任意代码的一系列程序设计问题。 - 要了解更详细的信息, 请参见安全公告 FreeBSD-SA-04:14 - - 修正了 CONS_SCRSHOT &man.ioctl.2; - 中的一处问题; 这个问题可能导致未授权的对内核内存的访问, - 而这种访问可能会导致泄露敏感信息、 绕过访问控制机制, - 或导致特权提升。 - 要了解更详细的信息, 请参见安全公告 FreeBSD-SA-04:15 对于内核的改动 - 加入并默认启用了 ADAPTIVE_MUTEXES。 - 当另一个 CPU 上运行的线程拥有某个 mutex 时, - 这将让受阻的 mutex 自旋。 - 如果要关闭这个特性, 则需要设置内核选项 - NO_ADAPTIVE_MUTEXES + 对于 80386 处理器 (也就是 + I386_CPU 内核配置选项) 的支持, + 已经被删去。 使用这一类型的 CPU 的用户, 应使用 &os; + 5.X 或更早的版本。 - 新增了 ADAPTIVE_GIANT, - 它使得启用了自适应 mutex 时,内核全局锁 (Giant) - 也以自适应 mutex 的方式处理。 这可以改善 SMP 机器的性能, - 并在 i386 上默认启用。 + 内核调试器 &man.ddb.4; 现在支持用于显示持有休眠互斥体 + (以及当前线程所持有的自旋互斥体) 的情况的 + show alllocks 命令了。 &merged; - &man.bus.dma.9; 接口新增了加载缓冲时对于 DMA tag - 中的对齐和边界限制的透明识别支持, - 而 bus_dmamap_load() - 将在需要时自动使用弹回缓冲。 - 此外, 还增加了一组用于 &man.bus.dma.9; 统计的 - sysctl hw.busdma.* + 现在 &man.jail.8; 功能支持一个新的 sysctl + security.jail.chflags_allowed, + 用于控制 &man.chflags.1; 在 jail 中的行为。 + 如果设置为 0 (默认值), jail 中的 root + 用户将被认为是非特权用户; 如果设置为 1, + 则 jail 中的 root 用户会被视为与未 jail 的 root + 用户一样。 &merged; - 重新实现了 &man.contigmalloc.9; - 并采用了一种在执行程序时无论压力大小都能更好地工作的算法。 - 原先的算法可以通过设置 sysctl vm.old_contigmalloc - 来启用, 具体情况在 &man.contigmalloc.9; 联机手册中有所介绍。 + 加载器变量 debug.mpsafevm + 默认置为启用了。 &merged; - &man.devfs.5; 路径规则现在可以在目录中正常工作了。 + 加入了 &man.memguard.9;, 一种用来帮助检测 + 悬挂指针操作 情形的内核内存分配器。 + 要利用这一功能, 就必须明确地通过 options + DEBUG_MEMGUARD 来启用它, 并对内核进行小幅度的修改。 + 一般而言, 这是为内核开发人员提供的功能。 - 删去了 &man.getvfsent.3; API。 + 一系列 ULE 的问题得到了修正。 &merged; - 去掉了 loader 变量 hw.pci.allow_unsupported_io_range + 在 VFS 栈中加入了细锁, 这使得它的大部分得以脱离全局锁。 + 这一特性在 alpha、 amd64, 以及 i386 平台上被默认打开, + 并可以通过设置加载器变量 (以及 sysctl 变量) + debug.mpsafevfs 为 + 0 来禁用它。 - &man.jail.2; 目前可以支持从 jail 中使用 raw sockets 了。 - 默认情况下,这一功能处于关闭的状态,可以通过 - security.jail.allow_raw_sockets sysctl 来控制。 + 一个关于在对处理器间中断 (IPI) 进行处理时的问题得以修正, + 这一问题可能导致 SMP 系统在重载时崩溃。 更多细节, 可以在勘误说明 + FreeBSD-EN-05:03.ipi + 中找到。 &merged; - &man.kqueue.2; 新增了一种叫做 - EVFILT_FS 的过滤器支持, - 它可以用信号将一般的文件系统事件传达给用户进程空间。 - 目前, mount, unmount, 以及 NFS 的 up/down - 可以使用信号传递。 + System V IPC 对象 (消息队列、 信号量和共享内存) + 现在提供了强制性访问控制策略, + 特别是 &man.mac.biba.4;, &man.mac.mls.4;, &man.mac.stub.4;, 和 + &man.mac.test.4; 的支持。 - KDB, 一个新的调试器框架, 被加入进来。 - 这包括一个被重写以支持线程、 RLE 压缩等功能的全新 GDB 后端, - 而前端则提供了可以配置多个不同调试器后端的框架, - 并为这些后端提供基本服务。 此外修改了下述选项: + 将传统 PCI 桥的内存分配范围, + 限制到了 RAM 顶部的 32MB。 许多较早的、 旧的桥硬件, + 只允许分配这一范围的内存。 这一修改只被应用于那些没有通过 BIOS + 指定内存范围的设备。 它修正了 CardBus 桥 (&man.pccbb.4;) + 的 bad Vcc 错误。 &merged; - - - KDB 可以通过内核选项 options KDB、 - options GDB 以及 options DDB - 来默认地启用。 - DDB 和 - GDB 用于指定使用哪一个 KDB 后端。 - + debug 开头的 &man.sysctl.3; MIB, + 现在需要使用内核选项 options SYSCTL_DEBUG + 才能使用了。 这一选项默认不启用。 - - WITNESS_DDB 改名为 - WITNESS_KDB - + 在许多驱动中加入了通用的 &man.tty.4; 驱动接口, + 这包括 + &man.cx.4; ({tty,cua}x), + &man.cy.4; ({tty,cua}c), + &man.digi.4; ({tty,cua}D), + &man.rc.4; ({tty,cua}m), + &man.rp.4; ({tty,cua}R), + &man.sab.4; ({tty,cua}z), + &man.si.4; ({tty,cua}A), + &man.sio.4; ({tty,cua}d), + sx ({tty,cua}G), + &man.uart.4; ({tty,cua}u), + &man.ubser.4; ({tty,cua}y), + &man.ucom.4; ({tty,cua}U), 以及 + &man.ucycom.4; ({tty,cua}y) + 并进行了必要的重写。 请注意, /etc/remote + 和 /etc/ttys 也随之进行了更新。 - - DDB_TRACE 改名为 - KDB_TRACE - - - - DDB_UNATTENDED 改名为 - KDB_UNATTENDED - - - - SC_HISTORY_DDBKEY 改名为 - SC_HISTORY_KDBKEY - - - - 去掉了 DDB_NOKLDSYM。 - 新的 DDB 后端支持连接前符号的查找, - 并能够查找 KLD 的符号。 - - - - 去掉了 GDB_REMOTE_CHAT。 - 修改了 GDB 协议以适应 &os; 的需要。 - 同时, GDB 也包括了控制台输出。 - - - - KDB 同时还作为任何需要使用调试功能代码的统一枢纽, - 例如进入调试器, 或处理后备的 break 序列。 - 基于这样的原因, 前端不再是可选的。 - 只要可能, 所有的调试器请求都会被转发或交给当前的后端来进行处理。 - 可以通过 - debug.kdb.current sysctl 来选择当前使用的后端。 - 已经配置好的后端列表可以通过 - debug.kdb.available sysctl 得到。 - 另外, 可以通过写 - debug.kdb.enter sysctl 来进入调试器。 - - 增加了新的 sysctl debug.kdb.stop_cpus。 - 这可以控制在进入调试器时是否发出 IPI (处理器间中断), - 以便在调试时停止它们的运行。 - - amd64 上的动态内核模块已处于可用状态, - 在编译时默认开启。 - - 增加了初步的用于在 amd64 上运行 32-位 - Linux 程序的支持。 这可以通过 - COMPAT_LINUX32 内核选项来启用。 - - 增加了 MAC_STATIC, 这一内核选项用于在动态加载和卸载 MAC - 规则时禁止内部 MAC Framework 同步保护。 - - &man.mac.bsdextended.4; 策略现在支持只有在全部规则匹配时才匹配并应用第一个策略。 - 这一特性可以通过新的 sysctl - mac_bsdextended_firstmatch_enabled 来启用。 - - &man.mac.bsdextended.4; 策略能够在 syslog 的 - AUTHPRIV facility 中记录失败尝试了。 - 这一特性可以通过新的 sysctl - mac_bsdextended_logging 来启用。 - - mbuma 取代了 mballoc, 这是一个基于 UMA 框架之上的扩展 Mbuf 和 Cluster 分配系统。 - 这一变动使得不再需要 NMBCLUSTERS 。 - clusters 的最大数目依然取决于 maxusers, - 但如果在启动时将 kern.ipc.nmbclusters 设置为零, - 则可以让其不受限制。 - - /dev/kmem/dev/mem、 - 以及 /dev/io - 现在可以作为内核可加载模块来使用了。 - - 修正了 &man.mmap.2; 在将内存页标记为 PROT_NONE - 时仍然可能在特定情况下被读取的问题。 &merged; - - 增加了新的内核选项 MP_WATCHDOG, - 它可以将系统中的一个逻辑 CPU 作为一个专用的 - watchdog 来使用。 一旦内核停止响应, 它将进入调试器或产生一个 - NMI (不可屏蔽中断)。 - 提供了许多 sysctl 用于在处理器的 idle 线程中启用 watchdog; - 而一个 callout 将在 watchdog 中复位计数器。 - 如果十秒之内 callout 仍然没有复位计数器, - 则超时进程将启动。 - debug.watchdog_cpu - sysctl 可以用来选择执行 watchdog 的 CPU。 - - 增加了 debug.leak_schedlock - sysctl。 这将让泄漏了 sched 锁的 sysctl 处理过程在锁上自旋以触发 - MP_WATCHDOG 选项所提供的 watchdog。 - - 增加了加载器选项 debug.mpsafenet 并默认开启。 - 这将使 &os; 的网络协议栈在不使用 - Giant 的条件下执行, - 从而通过提高并行度和减少网络处理延迟来达到提高性能的目的。 - 请注意如果启用了 &man.ng.tty.4; - Netgraph 节点类型、 KAME IPsec、 以及 IPX/SPX - 子系统中的任何一个都将导致启动时使用采用 Giant 的网络操作, - 如果在运行时加载它们则将会有警告说明这些组件需要 Giant - 锁才能够正常工作。 - - 增加了新的内核选项 NET_WITH_GIANT。 - 这将还原 debug.mpsafenet 的默认值 - 0, 它主要用于编译已知的非线程安全的组件, - 或需要更为保守的配置的情形。 - - 增加了新的加载器变量 debug.mpsafevm。 - 目前设置它将使填零缺页在绝大多数时候以无 Giant 的形式运行。 + 加入了 &man.vkbd.4; 驱动。 这个驱动提供了一个可以用于实现类似于 + &man.pty.4; 之于终端所完成的功能的虚拟 AT 键盘的软件环回机制。 - 增加了新的内核选项 - PREEMPTION。 - 它使得内核中的线程能够被优先级更高的线程抢占。 - 这有助于改善交互性, 并允许中断线程更早地执行而不是等待。 - - 在 dev sysctl 中加入了一层 devclass 以支持按分层可变的设备变量。 - 这样, dev.foo0.bar 现在应改作 dev.foo.0.bar, - 同时,使用 dev.foo.bar 也成为可能。 - - 新增了 sysctl, kern.always_console_output - 可以用来控制内核是否把所有输出放到 - TIOCCONS - - 加入了一个用于检测当前使用的调度器名称的 kern.sched.name - sysctl。 考虑到一致性, kern.quantum sysctl - 被改名为 kern.sched.quantum - >>> TRUNCATED FOR MAIL (1000 lines) <<<