Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

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

PERFORCE change 90578 for review



http://perforce.freebsd.org/chv.cgi?CH=90578

Change 90578 by rwatson@rwatson_zoo on 2006/01/28 23:59:56

	Integrate TrustedBSD audit3 to pick up changes missed in previous
	integrations due to a CVS->P4 importer problem, as well as new
	changes:
	
	- rwlocks
	- ktr clear
	- ddb show sleepqueue
	- ddb show turnstile 
	- NFS server cred cleanup looped back from trustedbsd_mac

Affected files ...

.. //depot/projects/trustedbsd/audit3/etc/pf.conf#3 integrate
.. //depot/projects/trustedbsd/audit3/games/fortune/datfiles/fortunes#8 integrate
.. //depot/projects/trustedbsd/audit3/include/nl_types.h#3 integrate
.. //depot/projects/trustedbsd/audit3/include/stdio.h#3 integrate
.. //depot/projects/trustedbsd/audit3/lib/libc/stdlib/malloc.c#5 integrate
.. //depot/projects/trustedbsd/audit3/lib/libdisk/Makefile#5 integrate
.. //depot/projects/trustedbsd/audit3/lib/libdisk/libdisk.3#5 integrate
.. //depot/projects/trustedbsd/audit3/lib/libutil/pidfile.3#3 integrate
.. //depot/projects/trustedbsd/audit3/libexec/rtld-elf/ia64/reloc.c#4 integrate
.. //depot/projects/trustedbsd/audit3/libexec/rtld-elf/ia64/rtld_start.S#2 integrate
.. //depot/projects/trustedbsd/audit3/sbin/dhclient/dhclient-script#3 integrate
.. //depot/projects/trustedbsd/audit3/share/examples/cvsup/ports-supfile#5 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man4/ng_pppoe.4#5 integrate
.. //depot/projects/trustedbsd/audit3/share/man/man5/rc.conf.5#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/amd64/amd64/trap.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/arm/arm/vm_machdep.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/compat/linux/linux_stats.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/conf/files#12 integrate
.. //depot/projects/trustedbsd/audit3/sys/conf/options#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/amr/amr.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/bktr/bktr_os.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/ceddk.c#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/ceddk.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/if_ce.c#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/ng_ce.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/tau32-ddk.c#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ce/tau32-ddk.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_3c503.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_cbus.c#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_hpp.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_isa.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_novell.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_sic.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_ed_wd80x3.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/ed/if_edvar.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/em/if_em.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/isp/isp_freebsd.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/md/md.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/dev/sound/pci/solo.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/i386/i386/trap.c#9 integrate
.. //depot/projects/trustedbsd/audit3/sys/ia64/include/elf.h#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_alq.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_ktr.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_mutex.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/kern_rwlock.c#1 branch
.. //depot/projects/trustedbsd/audit3/sys/kern/subr_lock.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/subr_sleepqueue.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/subr_turnstile.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/tty_pts.c#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/vfs_aio.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/vfs_subr.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/modules/bktr/bktr/Makefile#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/netgraph/ng_pppoe.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/netgraph/ng_pppoe.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs.h#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs_serv.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs_srvsock.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/nfsserver/nfs_syscalls.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/central/central.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/ebus/ebus.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/fhc/fhc_central.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/fhc/fhc_nexus.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/pci/psycho.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/sbus/dma_sbus.c#3 integrate
.. //depot/projects/trustedbsd/audit3/sys/sparc64/sbus/sbus.c#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/sys/_rwlock.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/sys/lock.h#4 integrate
.. //depot/projects/trustedbsd/audit3/sys/sys/proc.h#10 integrate
.. //depot/projects/trustedbsd/audit3/sys/sys/rwlock.h#1 branch
.. //depot/projects/trustedbsd/audit3/sys/sys/turnstile.h#5 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/swap_pager.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/uma_core.c#8 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/vm_fault.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/vm_map.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/vm_object.c#6 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/vm_pageout.c#7 integrate
.. //depot/projects/trustedbsd/audit3/sys/vm/vm_pageq.c#6 integrate
.. //depot/projects/trustedbsd/audit3/tools/tools/netrate/juggle/juggle.c#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/Makefile#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/calendar/calendars/calendar.freebsd#8 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/ee/ee.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/elfdump/elfdump.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/fetch/fetch.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/fstat/fstat.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/gprof/powerpc.h#1 branch
.. //depot/projects/trustedbsd/audit3/usr.bin/ktrdump/ktrdump.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/mail/mail.1#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/mktemp/mktemp.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/netstat/Makefile#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/netstat/ipsec.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/netstat/main.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/netstat/netstat.h#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/netstat/pfkey.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.bin/su/su.1#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/su/su.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/tar/bsdtar.1#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/alpha-fbsd.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/amd64-fbsd.c#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/extern.h#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/i386-fbsd.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/i386-linux.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/ia64-fbsd.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/main.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/powerpc-fbsd.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/sparc64-fbsd.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/syscall.h#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/syscalls.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/truss.1#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/truss/truss.h#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/wall/ttymsg.c#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/whois/whois.1#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/whois/whois.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/xargs/strnsubst.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/xargs/xargs.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.bin/xargs/xargs.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/adduser/adduser.sh#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/arp/arp.8#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/arp/arp.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/Makefile#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/BEGEMOT-HOSTRES-MIB.txt#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_begemot.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_diskstorage_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_fs_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_network_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_partition_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_printer_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_processor_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swinstalled_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_swrun_tbl.c#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_tree.def#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3#1 branch
.. //depot/projects/trustedbsd/audit3/usr.sbin/btxld/Makefile#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/btxld/btxld.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/config/config.h#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/config/config.y#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/config/main.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/config/mkmakefile.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/config/mkoptions.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/cron/crontab/crontab.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/inetd/Makefile#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/inetd/inetd.8#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/inetd/inetd.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/inetd/inetd.h#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/kbdcontrol/kbdcontrol.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/kbdmap/kbdmap.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/kldxref/ef_obj.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/mixer/mixer.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/newsyslog/newsyslog.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/add/add.h#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/add/extract.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/add/main.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/add/perform.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/add/pkg_add.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/create/perform.c#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/create/pkg_create.1#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/create/pl.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/info/info.h#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/info/main.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/info/perform.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/info/pkg_info.1#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/info/show.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/lib/lib.h#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/lib/plist.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/pkg_install/lib/url.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/portsnap/phttpget/phttpget.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/portsnap/portsnap/portsnap.8#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/portsnap/portsnap/portsnap.sh#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/powerd/Makefile#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/powerd/powerd.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/anonFTP.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/disks.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/dispatch.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/install.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/label.c#4 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/media.c#2 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/menus.c#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/sysinstall.8#6 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/sysinstall.h#5 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/sysinstall/tcpip.c#3 integrate
.. //depot/projects/trustedbsd/audit3/usr.sbin/traceroute6/traceroute6.8#5 integrate

Differences ...

==== //depot/projects/trustedbsd/audit3/etc/pf.conf#3 (text+ko) ====

@@ -1,4 +1,4 @@
-#	$FreeBSD: src/etc/pf.conf,v 1.2 2004/09/14 01:07:18 mlaier Exp $
+#	$FreeBSD: src/etc/pf.conf,v 1.3 2006/01/27 17:16:20 mlaier Exp $
 #	$OpenBSD: pf.conf,v 1.21 2003/09/02 20:38:44 david Exp $
 #
 # See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
@@ -72,6 +72,10 @@
 #pass in on $ext_if proto { tcp, udp } from any to <foo> port 80 keep state
 
 # pass incoming ports for ftp-proxy
+#pass in on $ext_if inet proto tcp from any to $ext_if port > 49151 keep state
+
+# Alternate rule to pass incoming ports for ftp-proxy
+# NOTE: Please see pf.conf(5) BUGS section before using user/group rules.
 #pass in on $ext_if inet proto tcp from any to $ext_if user proxy keep state
 
 # assign packets to a queue.

==== //depot/projects/trustedbsd/audit3/games/fortune/datfiles/fortunes#8 (text+ko) ====

@@ -1,5 +1,5 @@
 This fortune brought to you by:
-$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.203 2006/01/21 14:16:01 matteo Exp $
+$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.205 2006/01/28 09:19:20 dds Exp $
 
 %
 =======================================================================
@@ -29939,6 +29939,11 @@
 what is essential is invisible to the eye.
 		-- The Fox, 'The Little Prince"
 %
+It is perfectly permissible for every system call to fail with [ENOTADUCK]
+unless the first five bytes of the caller's address space contain the
+word "quack".
+		-- Garrett Wollman
+%
 It is possible by ingenuity and at the expense of clarity... {to do almost
 anything in any language}.  However, the fact that it is possible to push
 a pea up a mountain with your nose does not mean that this is a sensible
@@ -35390,6 +35395,10 @@
 %
 Never delay the ending of a meeting or the beginning of a cocktail hour.
 %
+Never do programs contain so few bugs as when no debugging tools
+are available.
+		-- Niklaus Wirth
+%
 Never do today what you can put off until tomorrow.
 %
 Never drink Coca-Cola in a moving elevator.  The elevator's motion coupled

==== //depot/projects/trustedbsd/audit3/include/nl_types.h#3 (text+ko) ====

@@ -35,7 +35,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/include/nl_types.h,v 1.11 2005/02/27 16:20:53 phantom Exp $
+ * $FreeBSD: src/include/nl_types.h,v 1.12 2006/01/26 20:53:40 stefanf Exp $
  */
 
 #ifndef _NL_TYPES_H_
@@ -97,8 +97,7 @@
 
 __BEGIN_DECLS
 nl_catd  catopen(const char *, int);
-char    *catgets(nl_catd, int, int, const char *)
-	__attribute__((__format_arg__(4)));
+char    *catgets(nl_catd, int, int, const char *) __format_arg(4);
 int	 catclose(nl_catd);
 __END_DECLS
 

==== //depot/projects/trustedbsd/audit3/include/stdio.h#3 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)stdio.h	8.5 (Berkeley) 4/29/95
- * $FreeBSD: src/include/stdio.h,v 1.56 2004/06/20 10:01:30 tjr Exp $
+ * $FreeBSD: src/include/stdio.h,v 1.57 2006/01/26 20:53:40 stefanf Exp $
  */
 
 #ifndef	_STDIO_H_
@@ -328,12 +328,7 @@
 int	 asprintf(char **, const char *, ...) __printflike(2, 3);
 char	*ctermid_r(char *);
 char	*fgetln(FILE *, size_t *);
-#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3
-#define	__ATTR_FORMAT_ARG	__attribute__((__format_arg__(2)))
-#else
-#define	__ATTR_FORMAT_ARG
-#endif
-__const char *fmtcheck(const char *, const char *) __ATTR_FORMAT_ARG;
+__const char *fmtcheck(const char *, const char *) __format_arg(2);
 int	 fpurge(FILE *);
 void	 setbuffer(FILE *, char *, int);
 int	 setlinebuf(FILE *);

==== //depot/projects/trustedbsd/audit3/lib/libc/stdlib/malloc.c#5 (text+ko) ====

@@ -133,10 +133,19 @@
 
 /******************************************************************************/
 
-#define	MALLOC_DEBUG
+/* 
+ * In order to disable various extra features that may have negative
+ * performance impacts, (assertions, expanded statistics, redzones), define
+ * NO_MALLOC_EXTRAS.
+ */
+/* #define NO_MALLOC_EXTRAS */
+
+#ifndef NO_MALLOC_EXTRAS
+#  define MALLOC_DEBUG
+#endif
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.106 2006/01/26 08:11:23 jasone Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.110 2006/01/27 07:46:22 jasone Exp $");
 
 #include "libc_private.h"
 #ifdef MALLOC_DEBUG
@@ -176,13 +185,16 @@
  * Calculate statistics that can be used to get an idea of how well caching is
  * working.
  */
-#define	MALLOC_STATS
-#define	MALLOC_STATS_ARENAS
+#ifndef NO_MALLOC_EXTRAS
+#  define MALLOC_STATS
+#endif
 
 /*
  * Include redzones before/after every region, and check for buffer overflows.
  */
-#define MALLOC_REDZONES
+#ifndef NO_MALLOC_EXTRAS
+#  define MALLOC_REDZONES
+#endif
 #ifdef MALLOC_REDZONES
 #  define MALLOC_RED_2POW	4
 #  define MALLOC_RED		((size_t)(1 << MALLOC_RED_2POW))
@@ -298,10 +310,10 @@
 	uint64_t	nrequests;
 
 	/*
-	 * Number of best-fit allocations that were successfully serviced by
+	 * Number of exact-fit allocations that were successfully serviced by
 	 * this bin.
 	 */
-	uint64_t	nfit;
+	uint64_t	nserviced;
 
 	/* High-water marks for this bin. */
 	unsigned long	highcached;
@@ -311,7 +323,7 @@
 	 * during normal operation, so is maintained here in order to allow
 	 * calculating the high water mark.
 	 */
-	unsigned	nregions;
+	unsigned long	curcached;
 };
 
 typedef struct arena_stats_s arena_stats_t;
@@ -349,11 +361,8 @@
 
 	/* Frag statistics. */
 	struct {
-		/*
-		 * Number of times a region is cached in the "frag" field of
-		 * the arena.
-		 */
-		uint64_t	ncached;
+		/* Number of times the "frag" field of the arena is refilled. */
+		uint64_t	nrefills;
 
 		/*
 		 * Number of times a region is requested from the "frag" field
@@ -377,16 +386,10 @@
 		uint64_t	nrequests;
 
 		/*
-		 * Number of best-fit allocations that were successfully
+		 * Number of allocation requests that were successfully
 		 * serviced by large_regions.
 		 */
-		uint64_t	nfit;
-
-		/*
-		 * Number of allocation requests that were successfully serviced
-		 * large_regions, but that a bin could have serviced.
-		 */
-		uint64_t	noverfit;
+		uint64_t	nserviced;
 
 		/*
 		 * High-water mark for large_regions (number of nodes in tree).
@@ -1176,7 +1179,7 @@
 	stats_arenas->split.nserviced += arena->stats.split.nserviced;
 
 	/* Frag. */
-	stats_arenas->frag.ncached += arena->stats.frag.ncached;
+	stats_arenas->frag.nrefills += arena->stats.frag.nrefills;
 	stats_arenas->frag.nrequests += arena->stats.frag.nrequests;
 	stats_arenas->frag.nserviced += arena->stats.frag.nserviced;
 
@@ -1184,18 +1187,20 @@
 	for (i = 0; i < NBINS; i++) {
 		stats_arenas->bins[i].nrequests +=
 		    arena->stats.bins[i].nrequests;
-		stats_arenas->bins[i].nfit += arena->stats.bins[i].nfit;
+		stats_arenas->bins[i].nserviced +=
+		    arena->stats.bins[i].nserviced;
 		if (arena->stats.bins[i].highcached
 		    > stats_arenas->bins[i].highcached) {
 		    stats_arenas->bins[i].highcached
 			= arena->stats.bins[i].highcached;
 		}
+		stats_arenas->bins[i].curcached
+		    += arena->stats.bins[i].curcached;
 	}
 
 	/* large and large_regions. */
 	stats_arenas->large.nrequests += arena->stats.large.nrequests;
-	stats_arenas->large.nfit += arena->stats.large.nfit;
-	stats_arenas->large.noverfit += arena->stats.large.noverfit;
+	stats_arenas->large.nserviced += arena->stats.large.nserviced;
 	if (arena->stats.large.highcached > stats_arenas->large.highcached)
 		stats_arenas->large.highcached = arena->stats.large.highcached;
 	stats_arenas->large.curcached += arena->stats.large.curcached;
@@ -1227,28 +1232,29 @@
 	    stats_arenas->split.nserviced);
 
 	malloc_printf("cached frag usage:\n");
-	malloc_printf(" %13s%13s%13s\n", "ncached", "nrequests", "nserviced");
-	malloc_printf(" %13llu%13llu%13llu\n", stats_arenas->frag.ncached,
+	malloc_printf(" %13s%13s%13s\n", "nrefills", "nrequests", "nserviced");
+	malloc_printf(" %13llu%13llu%13llu\n", stats_arenas->frag.nrefills,
 	    stats_arenas->frag.nrequests, stats_arenas->frag.nserviced);
 
 	malloc_printf("bins:\n");
-	malloc_printf(" %4s%7s%13s%13s%11s\n", "bin", 
-	    "size", "nrequests", "nfit", "highcached");
+	malloc_printf(" %4s%7s%13s%13s%11s%11s\n", "bin", 
+	    "size", "nrequests", "nserviced", "highcached", "curcached");
 	for (i = 0; i < NBINS; i++) {
 		malloc_printf(
-		    " %4u%7u%13llu%13llu%11lu\n",
+		    " %4u%7u%13llu%13llu%11lu%11lu\n",
 		    i, ((i + bin_shift) << opt_quantum_2pow),
-		    stats_arenas->bins[i].nrequests, stats_arenas->bins[i].nfit,
-		    stats_arenas->bins[i].highcached);
+		    stats_arenas->bins[i].nrequests,
+		    stats_arenas->bins[i].nserviced,
+		    stats_arenas->bins[i].highcached,
+		    stats_arenas->bins[i].curcached);
 	}
 
 	malloc_printf("large:\n");
-	malloc_printf(" %13s%13s%13s%13s%13s\n", "nrequests", "nfit",
-	    "noverfit", "highcached", "curcached");
-	malloc_printf(" %13llu%13llu%13llu%13lu%13lu\n",
-	    stats_arenas->large.nrequests, stats_arenas->large.nfit,
-	    stats_arenas->large.noverfit, stats_arenas->large.highcached,
-	    stats_arenas->large.curcached);
+	malloc_printf(" %13s%13s%13s%13s\n", "nrequests", "nserviced",
+	    "highcached", "curcached");
+	malloc_printf(" %13llu%13llu%13lu%13lu\n",
+	    stats_arenas->large.nrequests, stats_arenas->large.nserviced,
+	    stats_arenas->large.highcached, stats_arenas->large.curcached);
 
 	malloc_printf("huge\n");
 	malloc_printf(" %13s\n", "nrequests");
@@ -1630,16 +1636,14 @@
 static unsigned
 arena_bins_search(arena_t *arena, size_t size)
 {
-	unsigned ret, minbin, i;
+	unsigned minbin, i;
 	int bit;
 
 	assert(QUANTUM_CEILING(size) == size);
 	assert((size >> opt_quantum_2pow) >= bin_shift);
 
-	if (size > bin_maxsize) {
-		ret = UINT_MAX;
-		goto RETURN;
-	}
+	if (size > bin_maxsize)
+		return (UINT_MAX);
 
 	minbin = (size >> opt_quantum_2pow) - bin_shift;
 	assert(minbin < NBINS);
@@ -1648,14 +1652,11 @@
 		    & (UINT_MAX << (minbin % (sizeof(int) << 3))));
 		if (bit != 0) {
 			/* Usable allocation found. */
-			ret = (i * (sizeof(int) << 3)) + bit - 1;
-			goto RETURN;
+			return ((i * (sizeof(int) << 3)) + bit - 1);
 		}
 	}
 
-	ret = UINT_MAX;
-RETURN:
-	return (ret);
+	return (UINT_MAX);
 }
 
 static __inline void
@@ -1715,7 +1716,7 @@
 
 	qr_remove(reg, next.u.s.link);
 #ifdef MALLOC_STATS
-	arena->stats.bins[bin].nregions--;
+	arena->stats.bins[bin].curcached--;
 #endif
 	if (qr_next(&tbin->regions, next.u.s.link) == &tbin->regions)
 		arena_mask_unset(arena, bin);
@@ -2066,12 +2067,12 @@
 	qr_new(reg, next.u.s.link);
 	qr_before_insert(&tbin->regions, reg, next.u.s.link);
 #ifdef MALLOC_STATS
-	arena->stats.bins[bin].nregions++;
+	arena->stats.bins[bin].curcached++;
 
-	if (arena->stats.bins[bin].nregions
+	if (arena->stats.bins[bin].curcached
 	    > arena->stats.bins[bin].highcached) {
 		arena->stats.bins[bin].highcached
-		    = arena->stats.bins[bin].nregions;
+		    = arena->stats.bins[bin].curcached;
 	}
 #endif
 }
@@ -2096,12 +2097,12 @@
 	qr_new(reg, next.u.s.link);
 	qr_after_insert(&tbin->regions, reg, next.u.s.link);
 #ifdef MALLOC_STATS
-	arena->stats.bins[bin].nregions++;
+	arena->stats.bins[bin].curcached++;
 
-	if (arena->stats.bins[bin].nregions
+	if (arena->stats.bins[bin].curcached
 	    > arena->stats.bins[bin].highcached) {
 		arena->stats.bins[bin].highcached
-		    = arena->stats.bins[bin].nregions;
+		    = arena->stats.bins[bin].curcached;
 	}
 #endif
 }
@@ -2123,7 +2124,7 @@
 	    == ((bin + bin_shift) << opt_quantum_2pow));
 	qr_remove(ret, next.u.s.link);
 #ifdef MALLOC_STATS
-	arena->stats.bins[bin].nregions--;
+	arena->stats.bins[bin].curcached--;
 #endif
 	if (qr_next(&tbin->regions, next.u.s.link) == &tbin->regions)
 		arena_mask_unset(arena, bin);
@@ -2479,7 +2480,7 @@
 
 			frag = node->reg;
 #ifdef MALLOC_STATS
-			arena->stats.frag.ncached++;
+			arena->stats.frag.nrefills++;
 #endif
 			assert(region_next_free_get(&frag->sep));
 			region_next_free_unset(&frag->sep);
@@ -2499,7 +2500,7 @@
 				/* Use the smallest available region. */
 				arena->frag = arena_bin_pop(arena, bin);
 #ifdef MALLOC_STATS
-				arena->stats.frag.ncached++;
+				arena->stats.frag.nrefills++;
 #endif
 				total_size =
 				    region_next_size_get(&arena->frag->sep);
@@ -2651,139 +2652,103 @@
 static region_t *
 arena_split_reg_alloc(arena_t *arena, size_t size, bool fit)
 {
-	region_t *ret;
+
+	if (arena->split == NULL)
+		return (NULL);
 
-	if (arena->split != NULL) {
 #ifdef MALLOC_STATS
-		arena->stats.split.nrequests++;
+	arena->stats.split.nrequests++;
 #endif
+	if (region_next_size_get(&arena->split->sep) >= size) {
+		region_t *ret;
 
-		if (region_next_size_get(&arena->split->sep) >= size) {
-			if (fit) {
-				size_t total_size;
+		if (fit) {
+			size_t total_size;
 
-				/*
-				 * Use split, but try to use the beginning for
-				 * smaller regions, and the end for larger
-				 * regions.  This reduces fragmentation in some
-				 * pathological use cases.  It tends to group
-				 * short-lived (smaller) regions, which
-				 * increases the effectiveness of coalescing.
-				 */
+			/*
+			 * Use split, but try to use the beginning for smaller
+			 * regions, and the end for larger regions.  This
+			 * reduces fragmentation in some pathological use
+			 * cases.  It tends to group short-lived (smaller)
+			 * regions, which increases the effectiveness of
+			 * coalescing.
+			 */
 
-				total_size =
-				    region_next_size_get(&arena->split->sep);
-				assert(size % quantum == 0);
+			total_size = region_next_size_get(&arena->split->sep);
+			assert(size % quantum == 0);
 
-				if (total_size - size >= QUANTUM_CEILING(
-				    sizeof(region_small_sizer_t))) {
-					if (size <= bin_maxsize) {
-						region_t *next;
-
-						/*
-						 * Carve space from the
-						 * beginning of split.
-						 */
-
-						/* ret. */
-						ret = arena->split;
-						region_next_size_set(&ret->sep,
-						    size);
-						assert(region_next_free_get(
-						    &ret->sep) == false);
-
-						/* next. */
-						next = (region_t *)&((char *)
-						    ret)[size];
-						region_next_size_set(&next->sep,
-						    total_size - size);
-						assert(size >=
-						    QUANTUM_CEILING(sizeof(
-						    region_small_sizer_t)));
-						region_prev_free_unset(
-						    &next->sep);
-						region_next_free_unset(
-						    &next->sep);
-
-						/* Update split. */
-						arena->split = next;
-					} else {
-						region_t *prev;
-						size_t prev_size;
-
-						/*
-						 * Carve space from the end of
-						 * split.
-						 */
-
-						/* prev. */
-						prev_size = total_size - size;
-						prev = arena->split;
-						region_next_size_set(&prev->sep,
-						    prev_size);
-						assert(prev_size >=
-						    QUANTUM_CEILING(sizeof(
-						    region_small_sizer_t)));
-						assert(region_next_free_get(
-						    &prev->sep) == false);
-
-						/* ret. */
-						ret = (region_t *)&((char *)
-						    prev)[prev_size];
-						region_next_size_set(&ret->sep,
-						    size);
-						region_prev_free_unset(
-						    &ret->sep);
-						region_next_free_unset(
-						    &ret->sep);
-
-#ifdef MALLOC_DEBUG
-						{
+			if (total_size - size >=
+			    QUANTUM_CEILING(sizeof(region_small_sizer_t))) {
+				if (size <= bin_maxsize) {
 					region_t *next;
 
-					/* next. */
-					next = (region_t *)&((char *) ret)
-					    [region_next_size_get(&ret->sep)];
-					assert(region_prev_free_get(&next->sep)
-					    == false);
-						}
-#endif
-					}
-#ifdef MALLOC_STATS
-					arena->stats.nsplit++;
-#endif
-				} else {
 					/*
-					 * split is close enough to the right
-					 * size that there isn't enough room to
-					 * create a neighboring region.
+					 * Carve space from the beginning of
+					 * split.
 					 */
 
 					/* ret. */
 					ret = arena->split;
-					arena->split = NULL;
+					region_next_size_set(&ret->sep, size);
 					assert(region_next_free_get(&ret->sep)
 					    == false);
 
+					/* next. */
+					next = (region_t *)&((char *)ret)[size];
+					region_next_size_set(&next->sep,
+					    total_size - size);
+					assert(size >= QUANTUM_CEILING(sizeof(
+					    region_small_sizer_t)));
+					region_prev_free_unset(&next->sep);
+					region_next_free_unset(&next->sep);
+
+					/* Update split. */
+					arena->split = next;
+				} else {
+					region_t *prev;
+					size_t prev_size;
+
+					/* Carve space from the end of split. */
+
+					/* prev. */
+					prev_size = total_size - size;
+					prev = arena->split;
+					region_next_size_set(&prev->sep,
+					    prev_size);
+					assert(prev_size >=
+					    QUANTUM_CEILING(sizeof(
+					    region_small_sizer_t)));
+					assert(region_next_free_get(
+					    &prev->sep) == false);
+
+					/* ret. */
+					ret = (region_t *)&((char *)
+					    prev)[prev_size];
+					region_next_size_set(&ret->sep, size);
+					region_prev_free_unset(&ret->sep);
+					region_next_free_unset(&ret->sep);
+
 #ifdef MALLOC_DEBUG
 					{
-						region_t *next;
+				region_t *next;
 
-						/* next. */
-						next = (region_t *)&((char *)
-						    ret)[region_next_size_get(
-						    &ret->sep)];
-						assert(region_prev_free_get(
-						    &next->sep) == false);
+				/* next. */
+				next = (region_t *)&((char *)ret)
+				    [region_next_size_get(&ret->sep)];
+				assert(region_prev_free_get(&next->sep)
+				    == false);
 					}
 #endif
 				}
-
 #ifdef MALLOC_STATS
-				arena->stats.split.nserviced++;
+				arena->stats.nsplit++;
 #endif
 			} else {
-				/* Don't fit to the allocation size. */
+				/*
+				 * Split is close enough to the right size that
+				 * there isn't enough room to create a
+				 * neighboring region.
+				 */
 
 				/* ret. */
 				ret = arena->split;
@@ -2796,35 +2761,59 @@
 					region_t *next;
 
 					/* next. */
-					next = (region_t *) &((char *) ret)
-					   [region_next_size_get(&ret->sep)];
+					next = (region_t *)&((char *)
+					    ret)[region_next_size_get(
+					    &ret->sep)];
 					assert(region_prev_free_get(&next->sep)
 					    == false);
 				}
 #endif
 			}
-			region_next_contig_set(&ret->sep);
-			goto RETURN;
-		} else if (size <= bin_maxsize) {
-			region_t *reg;
+#ifdef MALLOC_STATS
+			arena->stats.split.nserviced++;
+#endif
+		} else {
+			/* Don't fit to the allocation size. */
+
+			/* ret. */
+			ret = arena->split;
+			arena->split = NULL;
+			assert(region_next_free_get(&ret->sep) == false);
+
+#ifdef MALLOC_DEBUG
+			{
+				region_t *next;
+
+				/* next. */
+				next = (region_t *) &((char *) ret)
+				   [region_next_size_get(&ret->sep)];
+				assert(region_prev_free_get(&next->sep)
+				    == false);
+			}
+#endif
+		}
+		region_next_contig_set(&ret->sep);
+		return (ret);
+	}
+	/* If we get here, split has failed to service the request. */
+	
+	if (size <= bin_maxsize) {
+		region_t *reg;
 
-			/*
-			 * The split region is too small to service a small
-			 * request.  Clear split.
-			 */
+		/*
+		 * The split region is too small to service a small request.
+		 * Clear split.
+		 */
 
-			reg = arena->split;
-			region_next_contig_set(&reg->sep);
+		reg = arena->split;
+		region_next_contig_set(&reg->sep);
 
-			arena->split = NULL;
+		arena->split = NULL;
 
-			arena_delay_cache(arena, reg);
-		}
+		arena_delay_cache(arena, reg);
 	}
 
-	ret = NULL;
-RETURN:
-	return (ret);
+	return (NULL);
 }
 
 /*
@@ -2884,7 +2873,6 @@
 			} else
 				arena_mru_cache(arena, next, next_size);
 		}
-
 #ifdef MALLOC_STATS
 		arena->stats.nsplit++;
 #endif
@@ -2911,19 +2899,17 @@
 		ret = arena_bin_pop(arena, bin);
 		assert(region_next_size_get(&ret->sep) >= size);
 #ifdef MALLOC_STATS
-		arena->stats.bins[bin].nfit++;
+		arena->stats.bins[bin].nserviced++;
 #endif
-		goto RETURN;
+		return (ret);
 	}
 
 	/* Look at frag to see whether it's large enough. */
 	ret = arena_frag_reg_alloc(arena, size, fit);
 	if (ret != NULL)
-		goto RETURN;
+		return (ret);
 
-	ret = NULL;
-RETURN:
-	return (ret);
+	return (NULL);
 }
 
 /* Look in large_regions for a large enough region. */
@@ -2943,10 +2929,8 @@
 	region_next_size_set(&key.sep, size);
 	node = RB_NFIND(region_tree_s, &arena->large_regions,
 	    &key.next.u.l.node);
-	if (node == NULL) {
-		ret = NULL;
-		goto RETURN;
-	}
+	if (node == NULL)
+		return (NULL);
 
 	/* Cached large region found. */
 	ret = node->reg;
@@ -2967,13 +2951,9 @@
 		arena_reg_fit(arena, size, ret, false);
 
 #ifdef MALLOC_STATS
-	if (size > bin_maxsize)
-		arena->stats.large.nfit++;
-	else
-		arena->stats.large.noverfit++;
+	arena->stats.large.nserviced++;
 #endif
 
-RETURN:
 	return (ret);
 }
 
@@ -2985,10 +2965,8 @@
 	chunk_node_t *chunk;
 
 	chunk = chunk_alloc(chunk_size);
-	if (chunk == NULL) {
-		ret = NULL;
-		goto RETURN;
-	}
+	if (chunk == NULL)
+		return (NULL);
 
 #ifdef MALLOC_DEBUG
 	{
@@ -3042,7 +3020,6 @@
 	if (fit)
 		arena_reg_fit(arena, size, ret, (arena->split == NULL));
 
-RETURN:
 	return (ret);
 }
 
@@ -3063,16 +3040,16 @@
 	if (size <= bin_maxsize) {
 		ret = arena_bin_reg_alloc(arena, size, fit);
 		if (ret != NULL)
-			goto RETURN;
+			return (ret);
 	}
 
 	ret = arena_large_reg_alloc(arena, size, fit);
 	if (ret != NULL)
-		goto RETURN;
+		return (ret);
 
 	ret = arena_split_reg_alloc(arena, size, fit);
 	if (ret != NULL)
-		goto RETURN;
+		return (ret);
 
 	/*
 	 * Only try allocating from frag here if size is large, since
@@ -3082,16 +3059,14 @@
 	if (size > bin_maxsize) {
 		ret = arena_frag_reg_alloc(arena, size, fit);
 		if (ret != NULL)
-			goto RETURN;
+			return (ret);
 	}
 
 	ret = arena_chunk_reg_alloc(arena, size, fit);
 	if (ret != NULL)
-		goto RETURN;
+		return (ret);
 
-	ret = NULL;
-RETURN:
-	return (ret);
+	return (NULL);
 }
 
 static void *
@@ -3109,8 +3084,7 @@
 	quantum_size = region_ceiling(size);
 	if (quantum_size < size) {
 		/* size is large enough to cause size_t wrap-around. */
-		ret = NULL;

>>> TRUNCATED FOR MAIL (1000 lines) <<<