svn commit: r201050 - in user/luigi/ipfw3-head: . bin/setfacl bin/sh contrib/telnet/telnetd contrib/top etc lib/libc/posix1e lib/libpam/modules/pam_lastlog lib/libulog libexec/atrun libexec/talkd r...

Luigi Rizzo luigi at FreeBSD.org
Sun Dec 27 13:56:36 UTC 2009


Author: luigi
Date: Sun Dec 27 13:56:35 2009
New Revision: 201050
URL: http://svn.freebsd.org/changeset/base/201050

Log:
  svn merge -r 200947:201048 from HEAD

Added:
  user/luigi/ipfw3-head/share/man/man4/mk48txx.4
     - copied unchanged from r201048, head/share/man/man4/mk48txx.4
  user/luigi/ipfw3-head/tools/regression/bin/sh/builtins/fc2.0
     - copied unchanged from r201048, head/tools/regression/bin/sh/builtins/fc2.0
Modified:
  user/luigi/ipfw3-head/UPDATING
  user/luigi/ipfw3-head/bin/setfacl/merge.c
  user/luigi/ipfw3-head/bin/setfacl/remove.c
  user/luigi/ipfw3-head/bin/setfacl/setfacl.h
  user/luigi/ipfw3-head/bin/setfacl/util.c
  user/luigi/ipfw3-head/bin/sh/alias.c
  user/luigi/ipfw3-head/bin/sh/alias.h
  user/luigi/ipfw3-head/bin/sh/arith.h
  user/luigi/ipfw3-head/bin/sh/arith.y
  user/luigi/ipfw3-head/bin/sh/cd.c
  user/luigi/ipfw3-head/bin/sh/error.c
  user/luigi/ipfw3-head/bin/sh/error.h
  user/luigi/ipfw3-head/bin/sh/exec.c
  user/luigi/ipfw3-head/bin/sh/exec.h
  user/luigi/ipfw3-head/bin/sh/expand.c
  user/luigi/ipfw3-head/bin/sh/expand.h
  user/luigi/ipfw3-head/bin/sh/histedit.c
  user/luigi/ipfw3-head/bin/sh/input.c
  user/luigi/ipfw3-head/bin/sh/input.h
  user/luigi/ipfw3-head/bin/sh/jobs.c
  user/luigi/ipfw3-head/bin/sh/mail.c
  user/luigi/ipfw3-head/bin/sh/main.c
  user/luigi/ipfw3-head/bin/sh/main.h
  user/luigi/ipfw3-head/bin/sh/memalloc.c
  user/luigi/ipfw3-head/bin/sh/memalloc.h
  user/luigi/ipfw3-head/bin/sh/myhistedit.h
  user/luigi/ipfw3-head/bin/sh/options.c
  user/luigi/ipfw3-head/bin/sh/options.h
  user/luigi/ipfw3-head/bin/sh/output.c
  user/luigi/ipfw3-head/bin/sh/output.h
  user/luigi/ipfw3-head/bin/sh/parser.c
  user/luigi/ipfw3-head/bin/sh/parser.h
  user/luigi/ipfw3-head/bin/sh/show.c
  user/luigi/ipfw3-head/bin/sh/show.h
  user/luigi/ipfw3-head/bin/sh/trap.h
  user/luigi/ipfw3-head/bin/sh/var.c
  user/luigi/ipfw3-head/bin/sh/var.h
  user/luigi/ipfw3-head/contrib/telnet/telnetd/sys_term.c
  user/luigi/ipfw3-head/contrib/top/username.c
  user/luigi/ipfw3-head/etc/rc.subr
  user/luigi/ipfw3-head/lib/libc/posix1e/acl_delete_entry.c
  user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c
  user/luigi/ipfw3-head/lib/libulog/ulog.h
  user/luigi/ipfw3-head/lib/libulog/ulog_getutxent.c
  user/luigi/ipfw3-head/lib/libulog/ulog_pututxline.c
  user/luigi/ipfw3-head/lib/libulog/ulog_setutxfile.3
  user/luigi/ipfw3-head/libexec/atrun/atrun.c
  user/luigi/ipfw3-head/libexec/talkd/Makefile
  user/luigi/ipfw3-head/libexec/talkd/process.c
  user/luigi/ipfw3-head/release/picobsd/bridge/PICOBSD
  user/luigi/ipfw3-head/release/picobsd/bridge/crunch.conf
  user/luigi/ipfw3-head/sbin/nfsiod/nfsiod.8
  user/luigi/ipfw3-head/sbin/nfsiod/nfsiod.c
  user/luigi/ipfw3-head/share/man/man4/Makefile
  user/luigi/ipfw3-head/share/man/man4/gem.4
  user/luigi/ipfw3-head/share/man/man4/ste.4
  user/luigi/ipfw3-head/sys/cam/ata/ata_da.c
  user/luigi/ipfw3-head/sys/conf/files.ia64
  user/luigi/ipfw3-head/sys/dev/ae/if_ae.c
  user/luigi/ipfw3-head/sys/dev/ahci/ahci.c
  user/luigi/ipfw3-head/sys/dev/hwpmc/hwpmc_core.c
  user/luigi/ipfw3-head/sys/dev/hwpmc/hwpmc_mod.c
  user/luigi/ipfw3-head/sys/dev/jme/if_jme.c
  user/luigi/ipfw3-head/sys/dev/mc146818/mc146818.c
  user/luigi/ipfw3-head/sys/dev/mc146818/mc146818reg.h
  user/luigi/ipfw3-head/sys/dev/mc146818/mc146818var.h
  user/luigi/ipfw3-head/sys/dev/mk48txx/mk48txx.c
  user/luigi/ipfw3-head/sys/dev/mk48txx/mk48txxreg.h
  user/luigi/ipfw3-head/sys/dev/mk48txx/mk48txxvar.h
  user/luigi/ipfw3-head/sys/dev/ste/if_ste.c
  user/luigi/ipfw3-head/sys/dev/ste/if_stereg.h
  user/luigi/ipfw3-head/sys/dev/twe/twe.c
  user/luigi/ipfw3-head/sys/dev/twe/twe_freebsd.c
  user/luigi/ipfw3-head/sys/dev/twe/twevar.h
  user/luigi/ipfw3-head/sys/dev/usb/net/if_aue.c
  user/luigi/ipfw3-head/sys/dev/usb/net/if_axe.c
  user/luigi/ipfw3-head/sys/dev/usb/net/if_cue.c
  user/luigi/ipfw3-head/sys/dev/usb/net/if_kue.c
  user/luigi/ipfw3-head/sys/dev/usb/serial/uftdi.c
  user/luigi/ipfw3-head/sys/dev/usb/serial/uplcom.c
  user/luigi/ipfw3-head/sys/dev/usb/serial/uslcom.c
  user/luigi/ipfw3-head/sys/dev/usb/serial/uvisor.c
  user/luigi/ipfw3-head/sys/dev/usb/usbdevs
  user/luigi/ipfw3-head/sys/dev/usb/wlan/if_rum.c
  user/luigi/ipfw3-head/sys/dev/usb/wlan/if_ural.c
  user/luigi/ipfw3-head/sys/dev/vge/if_vge.c
  user/luigi/ipfw3-head/sys/fs/nfs/nfs_commonacl.c
  user/luigi/ipfw3-head/sys/fs/nfs/nfs_var.h
  user/luigi/ipfw3-head/sys/fs/nfsclient/nfs.h
  user/luigi/ipfw3-head/sys/fs/nfsclient/nfs_clbio.c
  user/luigi/ipfw3-head/sys/fs/nfsclient/nfs_clvnops.c
  user/luigi/ipfw3-head/sys/fs/nfsserver/nfs_nfsdport.c
  user/luigi/ipfw3-head/sys/fs/nfsserver/nfs_nfsdserv.c
  user/luigi/ipfw3-head/sys/ia64/include/cpufunc.h
  user/luigi/ipfw3-head/sys/kern/kern_proc.c
  user/luigi/ipfw3-head/sys/kern/kern_rmlock.c
  user/luigi/ipfw3-head/sys/kern/subr_acl_nfs4.c
  user/luigi/ipfw3-head/sys/kern/subr_acl_posix1e.c
  user/luigi/ipfw3-head/sys/kern/vfs_subr.c
  user/luigi/ipfw3-head/sys/nfsclient/krpc_subr.c
  user/luigi/ipfw3-head/sys/sparc64/include/intr_machdep.h
  user/luigi/ipfw3-head/sys/sparc64/pci/ofw_pcib.c
  user/luigi/ipfw3-head/sys/sparc64/pci/psycho.c
  user/luigi/ipfw3-head/sys/sparc64/pci/schizo.c
  user/luigi/ipfw3-head/sys/sparc64/sparc64/eeprom.c
  user/luigi/ipfw3-head/sys/sparc64/sparc64/intr_machdep.c
  user/luigi/ipfw3-head/sys/sparc64/sparc64/nexus.c
  user/luigi/ipfw3-head/sys/sparc64/sparc64/rtc.c
  user/luigi/ipfw3-head/sys/sys/pmc.h
  user/luigi/ipfw3-head/tools/regression/acltools/tools-crossfs.test
  user/luigi/ipfw3-head/usr.bin/killall/killall.1
  user/luigi/ipfw3-head/usr.bin/rwho/rwho.c
  user/luigi/ipfw3-head/usr.bin/who/who.c
  user/luigi/ipfw3-head/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
  user/luigi/ipfw3-head/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c
  user/luigi/ipfw3-head/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c
  user/luigi/ipfw3-head/usr.sbin/diskinfo/diskinfo.8
  user/luigi/ipfw3-head/usr.sbin/diskinfo/diskinfo.c
  user/luigi/ipfw3-head/usr.sbin/lastlogin/lastlogin.c
  user/luigi/ipfw3-head/usr.sbin/ntp/config.h
  user/luigi/ipfw3-head/usr.sbin/service/service.8
  user/luigi/ipfw3-head/usr.sbin/syslogd/Makefile
  user/luigi/ipfw3-head/usr.sbin/syslogd/syslogd.c
  user/luigi/ipfw3-head/usr.sbin/wake/wake.8
  user/luigi/ipfw3-head/usr.sbin/wake/wake.c
Directory Properties:
  user/luigi/ipfw3-head/   (props changed)
  user/luigi/ipfw3-head/cddl/contrib/opensolaris/   (props changed)
  user/luigi/ipfw3-head/contrib/bind9/   (props changed)
  user/luigi/ipfw3-head/contrib/cpio/   (props changed)
  user/luigi/ipfw3-head/contrib/csup/   (props changed)
  user/luigi/ipfw3-head/contrib/ee/   (props changed)
  user/luigi/ipfw3-head/contrib/expat/   (props changed)
  user/luigi/ipfw3-head/contrib/file/   (props changed)
  user/luigi/ipfw3-head/contrib/gdb/   (props changed)
  user/luigi/ipfw3-head/contrib/gdtoa/   (props changed)
  user/luigi/ipfw3-head/contrib/less/   (props changed)
  user/luigi/ipfw3-head/contrib/libpcap/   (props changed)
  user/luigi/ipfw3-head/contrib/ncurses/   (props changed)
  user/luigi/ipfw3-head/contrib/netcat/   (props changed)
  user/luigi/ipfw3-head/contrib/ntp/   (props changed)
  user/luigi/ipfw3-head/contrib/openbsm/   (props changed)
  user/luigi/ipfw3-head/contrib/openpam/   (props changed)
  user/luigi/ipfw3-head/contrib/pf/   (props changed)
  user/luigi/ipfw3-head/contrib/sendmail/   (props changed)
  user/luigi/ipfw3-head/contrib/tcpdump/   (props changed)
  user/luigi/ipfw3-head/contrib/tcsh/   (props changed)
  user/luigi/ipfw3-head/contrib/top/   (props changed)
  user/luigi/ipfw3-head/contrib/top/install-sh   (props changed)
  user/luigi/ipfw3-head/contrib/wpa/   (props changed)
  user/luigi/ipfw3-head/crypto/openssh/   (props changed)
  user/luigi/ipfw3-head/crypto/openssl/   (props changed)
  user/luigi/ipfw3-head/lib/libc/   (props changed)
  user/luigi/ipfw3-head/lib/libc/stdtime/   (props changed)
  user/luigi/ipfw3-head/lib/libutil/   (props changed)
  user/luigi/ipfw3-head/sbin/   (props changed)
  user/luigi/ipfw3-head/sbin/ipfw/   (props changed)
  user/luigi/ipfw3-head/share/zoneinfo/   (props changed)
  user/luigi/ipfw3-head/sys/   (props changed)
  user/luigi/ipfw3-head/sys/amd64/include/xen/   (props changed)
  user/luigi/ipfw3-head/sys/cddl/contrib/opensolaris/   (props changed)
  user/luigi/ipfw3-head/sys/contrib/dev/acpica/   (props changed)
  user/luigi/ipfw3-head/sys/contrib/pf/   (props changed)
  user/luigi/ipfw3-head/sys/dev/xen/xenpci/   (props changed)
  user/luigi/ipfw3-head/usr.bin/csup/   (props changed)
  user/luigi/ipfw3-head/usr.bin/procstat/   (props changed)
  user/luigi/ipfw3-head/usr.sbin/zic/   (props changed)

Modified: user/luigi/ipfw3-head/UPDATING
==============================================================================
--- user/luigi/ipfw3-head/UPDATING	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/UPDATING	Sun Dec 27 13:56:35 2009	(r201050)
@@ -161,7 +161,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 20090712: 
 	Padding has been added to struct tcpcb, sackhint and tcpstat in
 	<netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
-	maintainig the ABI. However, this change breaks the ABI, so bump
+	maintaining the ABI. However, this change breaks the ABI, so bump
 	__FreeBSD_version to 800102. User space tools that rely on the size of
 	any of these structs (e.g. sockstat) need to be recompiled.
 
@@ -895,7 +895,7 @@ COMMON ITEMS:
 	-------------
 	Avoid using make -j when upgrading.  While generally safe, there are
 	sometimes problems using -j to upgrade.  If your upgrade fails with
-	-j, please try again wtihout -j.  From time to time in the past there
+	-j, please try again without -j.  From time to time in the past there
 	have been problems using -j with buildworld and/or installworld.  This
 	is especially true when upgrading between "distant" versions (eg one
 	that cross a major release boundary or several minor releases, or when

Modified: user/luigi/ipfw3-head/bin/setfacl/merge.c
==============================================================================
--- user/luigi/ipfw3-head/bin/setfacl/merge.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/setfacl/merge.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -100,11 +100,10 @@ merge_acl(acl_t acl, acl_t *prev_acl, co
 	acl_get_brand_np(acl, &acl_brand);
 	acl_get_brand_np(*prev_acl, &prev_acl_brand);
 
-	if (acl_brand != prev_acl_brand) {
+	if (branding_mismatch(acl_brand, prev_acl_brand)) {
 		warnx("%s: branding mismatch; existing ACL is %s, "
 		    "entry to be merged is %s", filename,
-		    prev_acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e",
-		    acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e");
+		    brand_name(prev_acl_brand), brand_name(acl_brand));
 		return (-1);
 	}
 
@@ -252,9 +251,10 @@ add_acl(acl_t acl, uint entry_number, ac
 		return (-1);
 	}
 
-	if (acl_brand != ACL_BRAND_NFS4) {
+	if (branding_mismatch(acl_brand, ACL_BRAND_NFS4)) {
 		warnx("%s: branding mismatch; existing ACL is NFSv4, "
-		    "entry to be added is POSIX.1e", filename);
+		    "entry to be added is %s", filename,
+		    brand_name(acl_brand));
 		return (-1);
 	}
 

Modified: user/luigi/ipfw3-head/bin/setfacl/remove.c
==============================================================================
--- user/luigi/ipfw3-head/bin/setfacl/remove.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/setfacl/remove.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -53,11 +53,10 @@ remove_acl(acl_t acl, acl_t *prev_acl, c
 	acl_get_brand_np(acl, &acl_brand);
 	acl_get_brand_np(*prev_acl, &prev_acl_brand);
 
-	if (acl_brand != prev_acl_brand) {
+	if (branding_mismatch(acl_brand, prev_acl_brand)) {
 		warnx("%s: branding mismatch; existing ACL is %s, "
 		    "entry to be removed is %s", filename,
-		    prev_acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e",
-		    acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e");
+		    brand_name(prev_acl_brand), brand_name(acl_brand));
 		return (-1);
 	}
 

Modified: user/luigi/ipfw3-head/bin/setfacl/setfacl.h
==============================================================================
--- user/luigi/ipfw3-head/bin/setfacl/setfacl.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/setfacl/setfacl.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -71,6 +71,8 @@ void   remove_ext(acl_t *prev_acl, const
 int    set_acl_mask(acl_t *prev_acl, const char *filename);
 /* util.c */
 void  *zmalloc(size_t size);
+const char *brand_name(int brand);
+int    branding_mismatch(int brand1, int brand2);
 
 uint       have_mask;
 uint       need_mask;

Modified: user/luigi/ipfw3-head/bin/setfacl/util.c
==============================================================================
--- user/luigi/ipfw3-head/bin/setfacl/util.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/setfacl/util.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -43,3 +43,26 @@ zmalloc(size_t size)
 		err(1, "calloc() failed");
 	return (ptr);
 }
+
+const char *
+brand_name(int brand)
+{
+	switch (brand) {
+	case ACL_BRAND_NFS4:
+		return "NFSv4";
+	case ACL_BRAND_POSIX:
+		return "POSIX.1e";
+	default:
+		return "unknown";
+	}
+}
+
+int
+branding_mismatch(int brand1, int brand2)
+{
+	if (brand1 == ACL_BRAND_UNKNOWN || brand2 == ACL_BRAND_UNKNOWN)
+		return (0);
+	if (brand1 != brand2)
+		return (1);
+	return (0);
+}

Modified: user/luigi/ipfw3-head/bin/sh/alias.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/alias.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/alias.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -52,13 +52,13 @@ __FBSDID("$FreeBSD$");
 STATIC struct alias *atab[ATABSIZE];
 STATIC int aliases;
 
-STATIC void setalias(char *, char *);
+STATIC void setalias(const char *, const char *);
 STATIC int unalias(const char *);
 STATIC struct alias **hashalias(const char *);
 
 STATIC
 void
-setalias(char *name, char *val)
+setalias(const char *name, const char *val)
 {
 	struct alias *ap, **app;
 
@@ -176,7 +176,7 @@ rmaliases(void)
 }
 
 struct alias *
-lookupalias(char *name, int check)
+lookupalias(const char *name, int check)
 {
 	struct alias *ap = *hashalias(name);
 

Modified: user/luigi/ipfw3-head/bin/sh/alias.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/alias.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/alias.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -42,7 +42,7 @@ struct alias {
 	int flag;
 };
 
-struct alias *lookupalias(char *, int);
+struct alias *lookupalias(const char *, int);
 int aliascmd(int, char **);
 int unaliascmd(int, char **);
 void rmaliases(void);

Modified: user/luigi/ipfw3-head/bin/sh/arith.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/arith.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/arith.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -34,8 +34,8 @@
 
 #define DIGITS(var) (3 + (2 + CHAR_BIT * sizeof((var))) / 3)
 
-extern char *arith_buf, *arith_startbuf;
+extern const char *arith_buf, *arith_startbuf;
 
-arith_t arith(char *);
+arith_t arith(const char *);
 void arith_lex_reset(void);
 int expcmd(int, char **);

Modified: user/luigi/ipfw3-head/bin/sh/arith.y
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/arith.y	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/arith.y	Sun Dec 27 13:56:35 2009	(r201050)
@@ -265,7 +265,7 @@ expr:
 #define YYPARSE_PARAM_TYPE arith_t *
 #define YYPARSE_PARAM result
 
-char *arith_buf, *arith_startbuf;
+const char *arith_buf, *arith_startbuf;
 
 int yylex(void);
 int yyparse(YYPARSE_PARAM_TYPE);
@@ -284,7 +284,7 @@ arith_assign(char *name, arith_t value)
 }
 
 arith_t
-arith(char *s)
+arith(const char *s)
 {
 	arith_t result;
 
@@ -299,7 +299,7 @@ arith(char *s)
 }
 
 static void
-yyerror(char *s)
+yyerror(const char *s)
 {
 
 	yyerrok;
@@ -354,7 +354,7 @@ main(int argc, char *argv[])
 	printf("%d\n", exp(argv[1]));
 }
 
-error(char *s)
+error(const char *s)
 {
 	fprintf(stderr, "exp: %s\n", s);
 	exit(1);

Modified: user/luigi/ipfw3-head/bin/sh/cd.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/cd.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/cd.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -80,7 +80,7 @@ int
 cdcmd(int argc, char **argv)
 {
 	char *dest;
-	char *path;
+	const char *path;
 	char *p;
 	struct stat statb;
 	int ch, phys, print = 0;

Modified: user/luigi/ipfw3-head/bin/sh/error.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/error.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/error.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -67,7 +67,7 @@ volatile sig_atomic_t intpending;
 char *commandname;
 
 
-static void exverror(int, const char *, va_list) __printf0like(2, 0);
+static void exverror(int, const char *, va_list) __printf0like(2, 0) __dead2;
 
 /*
  * Called to raise an exception.  Since C doesn't include exceptions, we

Modified: user/luigi/ipfw3-head/bin/sh/error.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/error.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/error.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -78,10 +78,10 @@ extern volatile sig_atomic_t intpending;
 #define CLEAR_PENDING_INT intpending = 0
 #define int_pending() intpending
 
-void exraise(int);
+void exraise(int) __dead2;
 void onint(void);
-void error(const char *, ...) __printf0like(1, 2);
-void exerror(int, const char *, ...) __printf0like(2, 3);
+void error(const char *, ...) __printf0like(1, 2) __dead2;
+void exerror(int, const char *, ...) __printf0like(2, 3) __dead2;
 
 
 /*

Modified: user/luigi/ipfw3-head/bin/sh/exec.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/exec.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/exec.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -98,7 +98,7 @@ int exerrno = 0;			/* Last exec error */
 
 STATIC void tryexec(char *, char **, char **);
 STATIC void printentry(struct tblentry *, int);
-STATIC struct tblentry *cmdlookup(char *, int);
+STATIC struct tblentry *cmdlookup(const char *, int);
 STATIC void delete_cmd_entry(void);
 
 
@@ -109,7 +109,7 @@ STATIC void delete_cmd_entry(void);
  */
 
 void
-shellexec(char **argv, char **envp, char *path, int index)
+shellexec(char **argv, char **envp, const char *path, int index)
 {
 	char *cmdname;
 	int e;
@@ -175,13 +175,13 @@ tryexec(char *cmd, char **argv, char **e
  * NULL.
  */
 
-char *pathopt;
+const char *pathopt;
 
 char *
-padvance(char **path, char *name)
+padvance(const char **path, const char *name)
 {
-	char *p, *q;
-	char *start;
+	const char *p, *start;
+	char *q;
 	int len;
 
 	if (*path == NULL)
@@ -269,7 +269,7 @@ STATIC void
 printentry(struct tblentry *cmdp, int verbose)
 {
 	int index;
-	char *path;
+	const char *path;
 	char *name;
 
 	if (cmdp->cmdtype == CMDNORMAL) {
@@ -310,7 +310,8 @@ printentry(struct tblentry *cmdp, int ve
  */
 
 void
-find_command(char *name, struct cmdentry *entry, int printerr, char *path)
+find_command(const char *name, struct cmdentry *entry, int printerr,
+    const char *path)
 {
 	struct tblentry *cmdp;
 	int index;
@@ -446,7 +447,7 @@ success:
  */
 
 int
-find_builtin(char *name, int *special)
+find_builtin(const char *name, int *special)
 {
 	const struct builtincmd *bp;
 
@@ -608,10 +609,10 @@ STATIC struct tblentry **lastcmdentry;
 
 
 STATIC struct tblentry *
-cmdlookup(char *name, int add)
+cmdlookup(const char *name, int add)
 {
 	int hashval;
-	char *p;
+	const char *p;
 	struct tblentry *cmdp;
 	struct tblentry **pp;
 
@@ -664,7 +665,7 @@ delete_cmd_entry(void)
  */
 
 void
-addcmdentry(char *name, struct cmdentry *entry)
+addcmdentry(const char *name, struct cmdentry *entry)
 {
 	struct tblentry *cmdp;
 
@@ -684,7 +685,7 @@ addcmdentry(char *name, struct cmdentry 
  */
 
 void
-defun(char *name, union node *func)
+defun(const char *name, union node *func)
 {
 	struct cmdentry entry;
 
@@ -701,7 +702,7 @@ defun(char *name, union node *func)
  */
 
 int
-unsetfunc(char *name)
+unsetfunc(const char *name)
 {
 	struct tblentry *cmdp;
 
@@ -767,7 +768,8 @@ typecmd_impl(int argc, char **argv, int 
 		switch (entry.cmdtype) {
 		case CMDNORMAL: {
 			if (strchr(argv[i], '/') == NULL) {
-				char *path = pathval(), *name;
+				const char *path = pathval();
+				char *name;
 				int j = entry.u.index;
 				do {
 					name = padvance(&path, argv[i]);

Modified: user/luigi/ipfw3-head/bin/sh/exec.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/exec.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/exec.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -57,20 +57,20 @@ struct cmdentry {
 };
 
 
-extern char *pathopt;		/* set by padvance */
+extern const char *pathopt;	/* set by padvance */
 extern int exerrno;		/* last exec error */
 
-void shellexec(char **, char **, char *, int);
-char *padvance(char **, char *);
+void shellexec(char **, char **, const char *, int) __dead2;
+char *padvance(const char **, const char *);
 int hashcmd(int, char **);
-void find_command(char *, struct cmdentry *, int, char *);
-int find_builtin(char *, int *);
+void find_command(const char *, struct cmdentry *, int, const char *);
+int find_builtin(const char *, int *);
 void hashcd(void);
 void changepath(const char *);
 void deletefuncs(void);
-void addcmdentry(char *, struct cmdentry *);
-void defun(char *, union node *);
-int unsetfunc(char *);
+void addcmdentry(const char *, struct cmdentry *);
+void defun(const char *, union node *);
+int unsetfunc(const char *);
 int typecmd_impl(int, char **, int);
 int typecmd(int, char **);
 void clearcmdentry(int);

Modified: user/luigi/ipfw3-head/bin/sh/expand.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/expand.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/expand.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -107,7 +107,7 @@ STATIC void expmeta(char *, char *);
 STATIC void addfname(char *);
 STATIC struct strlist *expsort(struct strlist *);
 STATIC struct strlist *msort(struct strlist *, int);
-STATIC int pmatch(char *, char *, int);
+STATIC int pmatch(const char *, const char *, int);
 STATIC char *cvtnum(int, char *);
 STATIC int collate_range_cmp(int, int);
 
@@ -271,8 +271,13 @@ exptilde(char *p, int flag)
 
 	while ((c = *p) != '\0') {
 		switch(c) {
-		case CTLESC:
-			return (startp);
+		case CTLESC: /* This means CTL* are always considered quoted. */
+		case CTLVAR:
+		case CTLENDVAR:
+		case CTLBACKQ:
+		case CTLBACKQ | CTLQUOTE:
+		case CTLARI:
+		case CTLENDARI:
 		case CTLQUOTEMARK:
 			return (startp);
 		case ':':
@@ -1338,7 +1343,7 @@ msort(struct strlist *list, int len)
  */
 
 int
-patmatch(char *pattern, char *string, int squoted)
+patmatch(const char *pattern, const char *string, int squoted)
 {
 #ifdef notdef
 	if (pattern[0] == '!' && pattern[1] == '!')
@@ -1350,9 +1355,9 @@ patmatch(char *pattern, char *string, in
 
 
 STATIC int
-pmatch(char *pattern, char *string, int squoted)
+pmatch(const char *pattern, const char *string, int squoted)
 {
-	char *p, *q;
+	const char *p, *q;
 	char c;
 
 	p = pattern;
@@ -1400,7 +1405,7 @@ pmatch(char *pattern, char *string, int 
 			} while (*q++ != '\0');
 			return 0;
 		case '[': {
-			char *endp;
+			const char *endp;
 			int invert, found;
 			char chr;
 
@@ -1504,7 +1509,7 @@ rmescapes(char *str)
  */
 
 int
-casematch(union node *pattern, char *val)
+casematch(union node *pattern, const char *val)
 {
 	struct stackmark smark;
 	int result;

Modified: user/luigi/ipfw3-head/bin/sh/expand.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/expand.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/expand.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -58,7 +58,7 @@ union node;
 void expandhere(union node *, int);
 void expandarg(union node *, struct arglist *, int);
 void expari(int);
-int patmatch(char *, char *, int);
+int patmatch(const char *, const char *, int);
 void rmescapes(char *);
-int casematch(union node *, char *);
+int casematch(union node *, const char *);
 int wordexpcmd(int, char **);

Modified: user/luigi/ipfw3-head/bin/sh/histedit.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/histedit.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/histedit.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -406,7 +406,7 @@ fc_replace(const char *s, char *p, char 
 }
 
 int
-not_fcnumber(char *s)
+not_fcnumber(const char *s)
 {
 	if (s == NULL)
 		return (0);
@@ -416,10 +416,10 @@ not_fcnumber(char *s)
 }
 
 int
-str_to_event(char *str, int last)
+str_to_event(const char *str, int last)
 {
 	HistEvent he;
-	char *s = str;
+	const char *s = str;
 	int relative = 0;
 	int i, retval;
 

Modified: user/luigi/ipfw3-head/bin/sh/input.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/input.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/input.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -401,7 +401,7 @@ popstring(void)
  */
 
 void
-setinputfile(char *fname, int push)
+setinputfile(const char *fname, int push)
 {
 	int fd;
 	int fd2;

Modified: user/luigi/ipfw3-head/bin/sh/input.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/input.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/input.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -54,7 +54,7 @@ int preadateof(void);
 void pungetc(void);
 void pushstring(char *, int, void *);
 void popstring(void);
-void setinputfile(char *, int);
+void setinputfile(const char *, int);
 void setinputfd(int, int);
 void setinputstring(char *, int);
 void popfile(void);

Modified: user/luigi/ipfw3-head/bin/sh/jobs.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/jobs.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/jobs.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -757,6 +757,7 @@ forkshell(struct job *jp, union node *n,
 		TRACE(("Child shell %d\n", (int)getpid()));
 		wasroot = rootshell;
 		rootshell = 0;
+		handler = &main_handler;
 		closescript();
 		INTON;
 		clear_traps();

Modified: user/luigi/ipfw3-head/bin/sh/mail.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/mail.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/mail.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -72,7 +72,7 @@ void
 chkmail(int silent)
 {
 	int i;
-	char *mpath;
+	const char *mpath;
 	char *p;
 	char *q;
 	struct stackmark smark;

Modified: user/luigi/ipfw3-head/bin/sh/main.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/main.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/main.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
 
 int rootpid;
 int rootshell;
+struct jmploc main_handler;
 
 STATIC void read_profile(char *);
 STATIC char *find_dot_file(char *);
@@ -90,14 +91,13 @@ STATIC char *find_dot_file(char *);
 int
 main(int argc, char *argv[])
 {
-	struct jmploc jmploc;
 	struct stackmark smark;
 	volatile int state;
 	char *shinit;
 
 	(void) setlocale(LC_ALL, "");
 	state = 0;
-	if (setjmp(jmploc.loc)) {
+	if (setjmp(main_handler.loc)) {
 		/*
 		 * When a shell procedure is executed, we raise the
 		 * exception EXSHELLPROC to clean up before executing
@@ -143,7 +143,7 @@ main(int argc, char *argv[])
 		else
 			goto state4;
 	}
-	handler = &jmploc;
+	handler = &main_handler;
 #ifdef DEBUG
 	opentrace();
 	trputs("Shell args:  ");  trargs(argv);
@@ -269,7 +269,7 @@ read_profile(char *name)
  */
 
 void
-readcmdfile(char *name)
+readcmdfile(const char *name)
 {
 	int fd;
 
@@ -296,7 +296,7 @@ find_dot_file(char *basename)
 {
 	static char localname[FILENAME_MAX+1];
 	char *fullname;
-	char *path = pathval();
+	const char *path = pathval();
 	struct stat statb;
 
 	/* don't try this for absolute or relative paths */

Modified: user/luigi/ipfw3-head/bin/sh/main.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/main.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/main.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -35,8 +35,9 @@
 
 extern int rootpid;	/* pid of main shell */
 extern int rootshell;	/* true if we aren't a child of the main shell */
+extern struct jmploc main_handler;	/* top level exception handler */
 
-void readcmdfile(char *);
+void readcmdfile(const char *);
 void cmdloop(int);
 int dotcmd(int, char **);
 int exitcmd(int, char **);

Modified: user/luigi/ipfw3-head/bin/sh/memalloc.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/memalloc.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/memalloc.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -95,7 +95,7 @@ ckfree(pointer p)
  */
 
 char *
-savestr(char *s)
+savestr(const char *s)
 {
 	char *p;
 

Modified: user/luigi/ipfw3-head/bin/sh/memalloc.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/memalloc.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/memalloc.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -51,7 +51,7 @@ extern int herefd;
 pointer ckmalloc(size_t);
 pointer ckrealloc(pointer, int);
 void ckfree(pointer);
-char *savestr(char *);
+char *savestr(const char *);
 pointer stalloc(int);
 void stunalloc(pointer);
 void setstackmark(struct stackmark *);

Modified: user/luigi/ipfw3-head/bin/sh/myhistedit.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/myhistedit.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/myhistedit.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -39,7 +39,7 @@ extern int displayhist;
 void histedit(void);
 void sethistsize(const char *);
 int histcmd(int, char **);
-int not_fcnumber(char *);
-int str_to_event(char *, int);
+int not_fcnumber(const char *);
+int str_to_event(const char *, int);
 int bindcmd(int, char **);
 

Modified: user/luigi/ipfw3-head/bin/sh/options.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/options.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/options.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -554,9 +554,10 @@ out:
  */
 
 int
-nextopt(char *optstring)
+nextopt(const char *optstring)
 {
-	char *p, *q;
+	char *p;
+	const char *q;
 	char c;
 
 	if ((p = optptr) == NULL || *p == '\0') {

Modified: user/luigi/ipfw3-head/bin/sh/options.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/options.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/options.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -111,5 +111,5 @@ void freeparam(struct shparam *);
 int shiftcmd(int, char **);
 int setcmd(int, char **);
 int getoptscmd(int, char **);
-int nextopt(char *);
+int nextopt(const char *);
 void getoptsreset(const char *);

Modified: user/luigi/ipfw3-head/bin/sh/output.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/output.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/output.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -314,7 +314,7 @@ doformat(struct output *dest, const char
  */
 
 int
-xwrite(int fd, char *buf, int nbytes)
+xwrite(int fd, const char *buf, int nbytes)
 {
 	int ntry;
 	int i;

Modified: user/luigi/ipfw3-head/bin/sh/output.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/output.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/output.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -52,7 +52,6 @@ extern struct output memout;
 extern struct output *out1;
 extern struct output *out2;
 
-void open_mem(char *, int, struct output *);
 void out1str(const char *);
 void out1qstr(const char *);
 void out2str(const char *);
@@ -68,7 +67,7 @@ void out1fmt(const char *, ...) __printf
 void out2fmt_flush(const char *, ...) __printflike(1, 2);
 void fmtstr(char *, int, const char *, ...) __printflike(3, 4);
 void doformat(struct output *, const char *, va_list) __printflike(2, 0);
-int xwrite(int, char *, int);
+int xwrite(int, const char *, int);
 
 #define outc(c, file)	(--(file)->nleft < 0? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c)))
 #define out1c(c)	outc(c, out1);

Modified: user/luigi/ipfw3-head/bin/sh/parser.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/parser.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/parser.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -1510,9 +1510,9 @@ noexpand(char *text)
  */
 
 int
-goodname(char *name)
+goodname(const char *name)
 {
-	char *p;
+	const char *p;
 
 	p = name;
 	if (! is_name(*p))

Modified: user/luigi/ipfw3-head/bin/sh/parser.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/parser.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/parser.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -77,5 +77,5 @@ extern int whichprompt;		/* 1 == PS1, 2 
 
 union node *parsecmd(int);
 void fixredir(union node *, const char *, int);
-int goodname(char *);
+int goodname(const char *);
 char *getprompt(void *);

Modified: user/luigi/ipfw3-head/bin/sh/show.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/show.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/show.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -307,7 +307,7 @@ sh_trace(const char *fmt, ...)
 
 
 void
-trputs(char *s)
+trputs(const char *s)
 {
 	if (tracefile == NULL)
 		return;

Modified: user/luigi/ipfw3-head/bin/sh/show.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/show.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/show.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -35,6 +35,6 @@ void showtree(union node *);
 void sh_trace(const char *, ...) __printflike(1, 2);
 void trargs(char **);
 void trputc(int);
-void trputs(char *);
+void trputs(const char *);
 void opentrace(void);
 #endif

Modified: user/luigi/ipfw3-head/bin/sh/trap.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/trap.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/trap.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -45,4 +45,4 @@ void ignoresig(int);
 void onsig(int);
 void dotrap(void);
 void setinteractive(int);
-void exitshell(int);
+void exitshell(int) __dead2;

Modified: user/luigi/ipfw3-head/bin/sh/var.c
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/var.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/var.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -122,9 +122,9 @@ STATIC const struct varinit varinit[] = 
 
 STATIC struct var *vartab[VTABSIZE];
 
-STATIC struct var **hashvar(char *);
-STATIC int varequal(char *, char *);
-STATIC int localevar(char *);
+STATIC struct var **hashvar(const char *);
+STATIC int varequal(const char *, const char *);
+STATIC int localevar(const char *);
 
 /*
  * Initialize the variable symbol tables and import the environment.
@@ -190,7 +190,7 @@ initvar(void)
  */
 
 int
-setvarsafe(char *name, char *val, int flags)
+setvarsafe(const char *name, const char *val, int flags)
 {
 	struct jmploc jmploc;
 	struct jmploc *const savehandler = handler;
@@ -215,9 +215,9 @@ setvarsafe(char *name, char *val, int fl
  */
 
 void
-setvar(char *name, char *val, int flags)
+setvar(const char *name, const char *val, int flags)
 {
-	char *p, *q;
+	const char *p;
 	int len;
 	int namelen;
 	char *nameeq;
@@ -245,19 +245,18 @@ setvar(char *name, char *val, int flags)
 	} else {
 		len += strlen(val);
 	}
-	p = nameeq = ckmalloc(len);
-	q = name;
-	while (--namelen >= 0)
-		*p++ = *q++;
-	*p++ = '=';
-	*p = '\0';
+	nameeq = ckmalloc(len);
+	memcpy(nameeq, name, namelen);
+	nameeq[namelen] = '=';
 	if (val)
-		scopy(val, p);
+		scopy(val, nameeq + namelen + 1);
+	else
+		nameeq[namelen + 1] = '\0';
 	setvareq(nameeq, flags);
 }
 
 STATIC int
-localevar(char *s)
+localevar(const char *s)
 {
 	static char *lnames[7] = {
 		"ALL", "COLLATE", "CTYPE", "MONETARY",
@@ -283,7 +282,7 @@ localevar(char *s)
  * pointer into environ where the string should not be manipulated.
  */
 static void
-change_env(char *s, int set)
+change_env(const char *s, int set)
 {
 	char *eqp;
 	char *ss;
@@ -389,7 +388,7 @@ listsetvar(struct strlist *list)
  */
 
 char *
-lookupvar(char *name)
+lookupvar(const char *name)
 {
 	struct var *v;
 
@@ -412,7 +411,7 @@ lookupvar(char *name)
  */
 
 char *
-bltinlookup(char *name, int doall)
+bltinlookup(const char *name, int doall)
 {
 	struct strlist *sp;
 	struct var *v;
@@ -796,7 +795,7 @@ unsetcmd(int argc __unused, char **argv 
  */
 
 int
-unsetvar(char *s)
+unsetvar(const char *s)
 {
 	struct var **vpp;
 	struct var *vp;
@@ -836,7 +835,7 @@ unsetvar(char *s)
  */
 
 STATIC struct var **
-hashvar(char *p)
+hashvar(const char *p)
 {
 	unsigned int hashval;
 
@@ -855,7 +854,7 @@ hashvar(char *p)
  */
 
 STATIC int
-varequal(char *p, char *q)
+varequal(const char *p, const char *q)
 {
 	while (*p == *q++) {
 		if (*p++ == '=')

Modified: user/luigi/ipfw3-head/bin/sh/var.h
==============================================================================
--- user/luigi/ipfw3-head/bin/sh/var.h	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/bin/sh/var.h	Sun Dec 27 13:56:35 2009	(r201050)
@@ -101,12 +101,12 @@ extern struct var vhistsize;
 #define mpathset()	((vmpath.flags & VUNSET) == 0)
 
 void initvar(void);
-void setvar(char *, char *, int);
+void setvar(const char *, const char *, int);
 void setvareq(char *, int);
 struct strlist;
 void listsetvar(struct strlist *);
-char *lookupvar(char *);
-char *bltinlookup(char *, int);
+char *lookupvar(const char *);
+char *bltinlookup(const char *, int);
 char **environment(void);
 void shprocvar(void);
 int showvarscmd(int, char **);
@@ -116,5 +116,5 @@ void mklocal(char *);
 void poplocalvars(void);
 int setvarcmd(int, char **);
 int unsetcmd(int, char **);
-int unsetvar(char *);
-int setvarsafe(char *, char *, int);
+int unsetvar(const char *);
+int setvarsafe(const char *, const char *, int);

Modified: user/luigi/ipfw3-head/contrib/telnet/telnetd/sys_term.c
==============================================================================
--- user/luigi/ipfw3-head/contrib/telnet/telnetd/sys_term.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/contrib/telnet/telnetd/sys_term.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/tty.h>
 #include <libutil.h>
 #include <stdlib.h>
-#include <utmp.h>
 
 #include "telnetd.h"
 #include "pathnames.h"
@@ -55,19 +54,6 @@ __FBSDID("$FreeBSD$");
 int cleanopen(char *);
 void scrub_env(void);
 
-struct	utmp wtmp;
-
-#ifdef _PATH_WTMP
-char    wtmpf[] = _PATH_WTMP;
-#else
-char	wtmpf[]	= "/var/log/wtmp";
-#endif
-#ifdef _PATH_UTMP
-char    utmpf[] = _PATH_UTMP;
-#else
-char	utmpf[] = "/var/run/utmp";
-#endif
-
 char	*envinit[3];
 extern char **environ;
 

Modified: user/luigi/ipfw3-head/contrib/top/username.c
==============================================================================
--- user/luigi/ipfw3-head/contrib/top/username.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/contrib/top/username.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -30,17 +30,17 @@
  *  This makes the table size independent of the passwd file size.
  */
 
+#include <sys/param.h>
 #include <sys/types.h>
 #include <stdio.h>
 #include <pwd.h>
-#include <utmp.h>
 
 #include "top.local.h"
 #include "utils.h"
 
 struct hash_el {
     int  uid;
-    char name[UT_NAMESIZE + 1];
+    char name[MAXLOGNAME];
 };
 
 #define    is_empty_hash(x)	(hash_table[x].name[0] == 0)
@@ -129,7 +129,7 @@ int wecare;		/* 1 = enter it always, 0 =
 
     /* empty or wrong slot -- fill it with new value */
     hash_table[hashindex].uid = uid;
-    (void) strncpy(hash_table[hashindex].name, name, UT_NAMESIZE);
+    (void) strncpy(hash_table[hashindex].name, name, MAXLOGNAME - 1);
     return(hashindex);
 }
 

Modified: user/luigi/ipfw3-head/etc/rc.subr
==============================================================================
--- user/luigi/ipfw3-head/etc/rc.subr	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/etc/rc.subr	Sun Dec 27 13:56:35 2009	(r201050)
@@ -738,7 +738,7 @@ $command $rc_flags $command_args"
 				if [ -n "$_nice" ]; then
 					if [ -z "$_user" ]; then
 						_doit="sh -c \"$_doit\""
-					fi	
+					fi
 					_doit="nice -n $_nice $_doit"
 				fi
 			fi
@@ -958,10 +958,11 @@ _run_rc_killcmd()
 #
 # run_rc_script file arg
 #	Start the script `file' with `arg', and correctly handle the
-#	return value from the script.  If `file' ends with `.sh', it's
-#	sourced into the current environment.  If `file' appears to be
-#	a backup or scratch file, ignore it.  Otherwise if it's
-#	executable run as a child process.
+#	return value from the script.
+#	If `file' ends with `.sh', it's sourced into the current environment
+#	when $rc_fast_and_loose is set, otherwise it is run as a child process.
+#	If `file' appears to be a backup or scratch file, ignore it.
+#	Otherwise if it is executable run as a child process.
 #
 run_rc_script()
 {
@@ -1063,7 +1064,7 @@ load_rc_config()
 		esac
 	done
 }
-  
+
 #
 # load_rc_config_var name var
 #	Read the rc.conf(5) var for name and set in the

Modified: user/luigi/ipfw3-head/lib/libc/posix1e/acl_delete_entry.c
==============================================================================
--- user/luigi/ipfw3-head/lib/libc/posix1e/acl_delete_entry.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/lib/libc/posix1e/acl_delete_entry.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -75,6 +75,7 @@ int
 acl_delete_entry(acl_t acl, acl_entry_t entry_d)
 {
 	struct acl *acl_int;
+	struct acl_entry entry_int;
 	int i, j, found = 0;
 
 	if (acl == NULL || entry_d == NULL) {
@@ -94,8 +95,12 @@ acl_delete_entry(acl_t acl, acl_entry_t 
 		errno = EINVAL;
 		return (-1);
 	}
+
+	/* Use a local copy to prevent deletion of more than this entry */
+	entry_int = *entry_d;
+
 	for (i = 0; i < acl->ats_acl.acl_cnt;) {
-		if (_entry_matches(&(acl->ats_acl.acl_entry[i]), entry_d)) {
+		if (_entry_matches(&(acl->ats_acl.acl_entry[i]), &entry_int)) {
 			/* ...shift the remaining entries... */
 			for (j = i; j < acl->ats_acl.acl_cnt - 1; ++j)
 				acl->ats_acl.acl_entry[j] =

Modified: user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c
==============================================================================
--- user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c	Sun Dec 27 13:23:14 2009	(r201049)
+++ user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c	Sun Dec 27 13:56:35 2009	(r201050)
@@ -91,7 +91,7 @@ pam_sm_open_session(pam_handle_t *pamh, 
 	}
 
 	if ((flags & PAM_SILENT) == 0) {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list