[PATCHES] setenv(putenv) patchset

Alexey Slynko slynko at tronet.ru
Tue Aug 16 12:08:55 PDT 2005


Hi,

this patchset check result of setenv(putenv) function.
It doesn't patch /contrib,/crypto and /sys subtrees.
Also it dowsn't patch /lib/libutil/login_class.c, because I have no 
idea, how it can be done


? usr.bin/make/make
? usr.bin/make/make.1.gz
Index: bin/date/date.c
===================================================================
RCS file: /home/dcvs/src/bin/date/date.c,v
retrieving revision 1.13
diff -u -r1.13 date.c
--- bin/date/date.c	20 Jul 2005 19:51:56 -0000	1.13
+++ bin/date/date.c	16 Aug 2005 17:37:29 -0000
@@ -117,7 +117,9 @@
 			set_timezone = 1;
 			break;
 		case 'u':		/* do everything in UTC */
-			setenv("TZ", "UTC0", 1);
+			if (setenv("TZ", "UTC0", 1) == -1) {
+				err(1, "setenv: TZ");
+			}
 			break;
 		case 'v':
 			v = vary_append(v, optarg);
Index: bin/df/df.c
===================================================================
RCS file: /home/dcvs/src/bin/df/df.c,v
retrieving revision 1.5
diff -u -r1.5 df.c
--- bin/df/df.c	7 Nov 2004 20:54:51 -0000	1.5
+++ bin/df/df.c	16 Aug 2005 17:37:29 -0000
@@ -144,11 +144,13 @@
 		case 'b':
 				/* FALLTHROUGH */
 		case 'P':
-			putenv("BLOCKSIZE=512");
+			if (putenv("BLOCKSIZE=512") == -1)
+				err(1, "putenv: BLOCKSIZE=512");
 			hflag = 0;
 			break;
 		case 'g':
-			putenv("BLOCKSIZE=1g");
+			if (putenv("BLOCKSIZE=1g") == -1)
+				err(1, "putenv: BLOCKSIZE=1g");
 			hflag = 0;
 			break;
 		case 'H':
@@ -163,7 +165,8 @@
 			iflag = 1;
 			break;
 		case 'k':
-			putenv("BLOCKSIZE=1k");
+			if (putenv("BLOCKSIZE=1k") == -1)
+				err(1, "putenv: BLOCKSIZE=1k");
 			hflag = 0;
 			break;
 		case 'l':
@@ -172,7 +175,8 @@
 			vfslist = makevfslist(makenetvfslist());
 			break;
 		case 'm':
-			putenv("BLOCKSIZE=1m");
+			if (putenv("BLOCKSIZE=1m") == -1)
+				err(1, "putenv: BLOCKSIZE=1m");
 			hflag = 0;
 			break;
 		case 'n':
Index: bin/ls/ls.c
===================================================================
RCS file: /home/dcvs/src/bin/ls/ls.c,v
retrieving revision 1.6
diff -u -r1.6 ls.c
--- bin/ls/ls.c	7 Nov 2004 20:54:51 -0000	1.6
+++ bin/ls/ls.c	16 Aug 2005 17:37:30 -0000
@@ -204,7 +204,8 @@
 			fts_options |= FTS_COMFOLLOW;
 			break;
 		case 'G':
-			setenv("CLICOLOR", "", 1);
+			if (setenv("CLICOLOR", "", 1) == -1)
+				err(1, "setenv: CLICOLOR");
 			break;
 		case 'L':
 			fts_options &= ~FTS_PHYSICAL;
Index: bin/sh/var.c
===================================================================
RCS file: /home/dcvs/src/bin/sh/var.c,v
retrieving revision 1.8
diff -u -r1.8 var.c
--- bin/sh/var.c	19 Apr 2005 05:18:19 -0000	1.8
+++ bin/sh/var.c	16 Aug 2005 17:37:30 -0000
@@ -41,6 +41,9 @@
 #include <unistd.h>
 #include <stdlib.h>
 
+#include <err.h>
+#include <errno.h>
+
 /*
  * Shell variables.
  */
@@ -316,7 +319,8 @@
 			if (vp == &vmpath || (vp == &vmail && ! mpathset()))
 				chkmail(1);
 			if ((vp->flags & VEXPORT) && localevar(s)) {
-				putenv(s);
+				if (putenv(s) == -1)
+					error("putenv: %s: %s", s, strerror(errno));
 				setlocale(LC_ALL, "");
 			}
 			INTON;
@@ -332,7 +336,8 @@
 	INTOFF;
 	*vpp = vp;
 	if ((vp->flags & VEXPORT) && localevar(s)) {
-		putenv(s);
+		if (putenv(s) == -1)
+			error("putenv: %s: %s", s, strerror(errno));
 		setlocale(LC_ALL, "");
 	}
 	INTON;
@@ -553,7 +558,8 @@
 
 						vp->flags |= flag;
 						if ((vp->flags & VEXPORT) && localevar(vp->text)) {
-							putenv(vp->text);
+							if (putenv(vp->text) == -1)
+								error("putenv: %s: %s", vp->text, strerror(errno));
 							setlocale(LC_ALL, "");
 						}
 						goto found;
Index: libexec/ftpd/popen.c
===================================================================
RCS file: /home/dcvs/src/libexec/ftpd/popen.c,v
retrieving revision 1.2
diff -u -r1.2 popen.c
--- libexec/ftpd/popen.c	17 Jun 2003 04:27:07 -0000	1.2
+++ libexec/ftpd/popen.c	16 Aug 2005 17:37:43 -0000
@@ -42,6 +42,7 @@
 #include <sys/wait.h>
 #include <netinet/in.h>
 
+#include <err.h>
 #include <errno.h>
 #include <glob.h>
 #include <signal.h>
@@ -146,7 +147,8 @@
 			closelog();
 			/* Trigger to sense new /etc/localtime after chroot */
 			if (getenv("TZ") == NULL) {
-				setenv("TZ", "", 0);
+				if (setenv("TZ", "", 0) == -1)
+					err(1, "setenv: TZ");
 				tzset();
 				unsetenv("TZ");
 				tzset();
Index: libexec/telnetd/state.c
===================================================================
RCS file: /home/dcvs/src/libexec/telnetd/state.c,v
retrieving revision 1.2
diff -u -r1.2 state.c
--- libexec/telnetd/state.c	17 Jun 2003 04:27:08 -0000	1.2
+++ libexec/telnetd/state.c	16 Aug 2005 17:37:43 -0000
@@ -1162,7 +1162,10 @@
 		return;
 	settimer(xdisplocsubopt);
 	subpointer[SB_LEN()] = '\0';
-	(void)setenv("DISPLAY", (char *)subpointer, 1);
+	if (setenv("DISPLAY", (char *)subpointer, 1) == -1) {
+		syslog(LOG_ERR, "setenv: DISPLAY: %m");
+		exit(1);
+	}
 	break;
     }  /* end of case TELOPT_XDISPLOC */
 
@@ -1327,9 +1330,12 @@
 		case NEW_ENV_VAR:
 		case ENV_USERVAR:
 			*cp = '\0';
-			if (valp)
-				(void)setenv(varp, valp, 1);
-			else
+			if (valp) {
+				if (setenv(varp, valp, 1) == 1) {
+					syslog(LOG_ERR, "setenv: %s: %m", varp);
+					exit(1);
+				}
+			} else
 				unsetenv(varp);
 			cp = varp = (char *)subpointer;
 			valp = 0;
@@ -1346,9 +1352,12 @@
 		}
 	}
 	*cp = '\0';
-	if (valp)
-		(void)setenv(varp, valp, 1);
-	else
+	if (valp) {
+		if (setenv(varp, valp, 1) == -1) {
+			syslog(LOG_ERR, "setenv: %s: %m", varp);
+			exit(1);
+		}
+	} else
 		unsetenv(varp);
 	break;
     }  /* end of case TELOPT_NEW_ENVIRON */
Index: libexec/telnetd/sys_term.c
===================================================================
RCS file: /home/dcvs/src/libexec/telnetd/sys_term.c,v
retrieving revision 1.2
diff -u -r1.2 sys_term.c
--- libexec/telnetd/sys_term.c	17 Jun 2003 04:27:08 -0000	1.2
+++ libexec/telnetd/sys_term.c	16 Aug 2005 17:37:43 -0000
@@ -1026,12 +1026,19 @@
 	 * "real" or "kludge" if we are operating in either
 	 * real or kludge linemode.
 	 */
-	if (lmodetype == REAL_LINEMODE)
-		setenv("LINEMODE", "real", 1);
+	if (lmodetype == REAL_LINEMODE) {
+		if (setenv("LINEMODE", "real", 1) == -1) {
+			syslog(LOG_ERR, "setenv: LINEMODE: %m");
+			exit(1);
+		}
 # ifdef KLUDGELINEMODE
-	else if (lmodetype == KLUDGE_LINEMODE || lmodetype == KLUDGE_OK)
-		setenv("LINEMODE", "kludge", 1);
+	} else if (lmodetype == KLUDGE_LINEMODE || lmodetype == KLUDGE_OK) {
+		if (setenv("LINEMODE", "kludge", 1) == -1) {
+			syslog(LOG_ERR, "setenv: LINEMODE: %m");
+			exit(1);
+		}
 # endif
+	}
 #endif
 #ifdef	BFTPDAEMON
 	/*
Index: libexec/telnetd/telnetd.c
===================================================================
RCS file: /home/dcvs/src/libexec/telnetd/telnetd.c,v
retrieving revision 1.2
diff -u -r1.2 telnetd.c
--- libexec/telnetd/telnetd.c	17 Jun 2003 04:27:08 -0000	1.2
+++ libexec/telnetd/telnetd.c	16 Aug 2005 17:37:43 -0000
@@ -590,7 +590,10 @@
 	 */
 	*user_name = 0;
 	level = getterminaltype(user_name);
-	setenv("TERM", terminaltype ? terminaltype : "network", 1);
+	if (setenv("TERM", terminaltype ? terminaltype : "network", 1) == -1) {
+		syslog(LOG_ERR, "setenv: TERM: %m");
+		_exit(1);
+	}
 
 	telnet(net, pty, remote_hostname);	/* begin server process */
 
Index: usr.bin/du/du.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/du/du.c,v
retrieving revision 1.7
diff -u -r1.7 du.c
--- usr.bin/du/du.c	1 Jan 2005 23:02:42 -0000	1.7
+++ usr.bin/du/du.c	16 Aug 2005 17:37:53 -0000
@@ -155,13 +155,15 @@
 				cflag = 1;
 				break;
 			case 'h':
-				putenv("BLOCKSIZE=512");
+				if (putenv("BLOCKSIZE=512") == -1)
+					err(1, "putenv: BLOCKSIZE=512");
 				hflag = 1;
 				valp = vals_base2;
 				break;
 			case 'k':
 				hflag = 0;
-				putenv("BLOCKSIZE=1024");
+				if (putenv("BLOCKSIZE=1024") == -1)
+					err(1, "putenv: BLOCKSIZE=1024");
 				break;
 			case 'r':		 /* Compatibility. */
 				break;
Index: usr.bin/fetch/fetch.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/fetch/fetch.c,v
retrieving revision 1.5
diff -u -r1.5 fetch.c
--- usr.bin/fetch/fetch.c	4 Jan 2005 23:08:13 -0000	1.5
+++ usr.bin/fetch/fetch.c	16 Aug 2005 17:37:53 -0000
@@ -906,7 +906,8 @@
 	if (v_tty)
 		fetchAuthMethod = query_auth;
 	if (N_filename != NULL)
-		setenv("NETRC", N_filename, 1);
+		if (setenv("NETRC", N_filename, 1) == -1)
+			err(1, "setenv: NETRC");
 
 	while (argc) {
 		if ((p = strrchr(*argv, '/')) == NULL)
Index: usr.bin/ldd/ldd.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/ldd/ldd.c,v
retrieving revision 1.5
diff -u -r1.5 ldd.c
--- usr.bin/ldd/ldd.c	24 Jul 2005 15:04:56 -0000	1.5
+++ usr.bin/ldd/ldd.c	16 Aug 2005 17:37:54 -0000
@@ -98,11 +98,14 @@
 #endif
 
 	/* ld.so magic */
-	setenv("LD_TRACE_LOADED_OBJECTS", "1", 1);
+	if (setenv("LD_TRACE_LOADED_OBJECTS", "1", 1) == -1)
+		err(1, "setenv: LD_TRACE_LOADED_OBJECTS");
 	if (fmt1)
-		setenv("LD_TRACE_LOADED_OBJECTS_FMT1", fmt1, 1);
+		if (setenv("LD_TRACE_LOADED_OBJECTS_FMT1", fmt1, 1) == -1)
+			err(1, "setenv: LD_TRACE_LOADED_OBJECTS_FMT1");
 	if (fmt2)
-		setenv("LD_TRACE_LOADED_OBJECTS_FMT2", fmt2, 1);
+		if (setenv("LD_TRACE_LOADED_OBJECTS_FMT2", fmt2, 1) == -1)
+			err(1, "setenv: LD_TRACE_LOADED_OBJECTS_FMT2");
 
 	rval = 0;
 	for ( ;  argc > 0;  argc--, argv++) {
@@ -180,7 +183,8 @@
 			continue;
 		}
 
-		setenv("LD_TRACE_LOADED_OBJECTS_PROGNAME", *argv, 1);
+		if (setenv("LD_TRACE_LOADED_OBJECTS_PROGNAME", *argv, 1) == -1)
+			err(1, "setenv: LD_TRACE_LOADED_OBJECTS_PROGNAME");
 		if (fmt1 == NULL && fmt2 == NULL)
 			/* Default formats */
 			printf("%s:\n", *argv);
Index: usr.bin/limits/limits.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/limits/limits.c,v
retrieving revision 1.4
diff -u -r1.4 limits.c
--- usr.bin/limits/limits.c	12 Jan 2005 01:20:26 -0000	1.4
+++ usr.bin/limits/limits.c	16 Aug 2005 17:37:54 -0000
@@ -434,7 +434,8 @@
 
 	/* set leading environment variables, like eval(1) */
 	while (*argv && (p = strchr(*argv, '=')))
-	    (void)setenv(*argv++, ++p, 1);
+	    if (setenv(*argv++, ++p, 1) == -1)
+		err(1, "setenv: %s", *argv);
 
 	/* Set limits */
 	for (rcswhich = 0; rcswhich < RLIM_NLIMITS; rcswhich++) {
Index: usr.bin/login/login.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/login/login.c,v
retrieving revision 1.5
diff -u -r1.5 login.c
--- usr.bin/login/login.c	13 Jul 2005 12:34:22 -0000	1.5
+++ usr.bin/login/login.c	16 Aug 2005 17:37:54 -0000
@@ -656,16 +656,37 @@
 		exit(1);
 	}
 
-	(void)setenv("SHELL", pwd->pw_shell, 1);
-	(void)setenv("HOME", pwd->pw_dir, 1);
-	if (term != NULL && *term != '\0')
-		(void)setenv("TERM", term, 1);		/* Preset overrides */
-	else {
-		(void)setenv("TERM", stypeof(tty), 0);	/* Fallback doesn't */
-	}
-	(void)setenv("LOGNAME", username, 1);
-	(void)setenv("USER", username, 1);
-	(void)setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0);
+	if (setenv("SHELL", pwd->pw_shell, 1) == -1) {
+		syslog(LOG_ERR, "setenv: SHELL: %s", strerror(errno));
+		exit(1);
+	}
+	if (setenv("HOME", pwd->pw_dir, 1) == -1) {
+		syslog(LOG_ERR, "setenv: HOME: %s", strerror(errno));
+		exit(1);
+	}
+	if (term != NULL && *term != '\0') {
+		if (setenv("TERM", term, 1) == -1) {		/* Preset overrides */
+			syslog(LOG_ERR, "setenv: TERM: %s", strerror(errno));
+			exit(1);
+		}
+	} else {
+		if (setenv("TERM", stypeof(tty), 0) == -1) {	/* Fallback doesn't */
+			syslog(LOG_ERR, "setenv: TERM: %s", strerror(errno));
+			exit(1);
+		}
+	}
+	if (setenv("LOGNAME", username, 1) == -1) {
+		syslog(LOG_ERR, "setenv: LOGNAME: %s", strerror(errno));
+		exit(1);
+	}
+	if (setenv("USER", username, 1) == -1) {
+		syslog(LOG_ERR, "setenv: USER: %s", strerror(errno));
+		exit(1);
+	}
+	if (setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0) == -1) {
+		syslog(LOG_ERR, "setenv: PATH: %s", strerror(errno));
+		exit(1);
+	}
 
 	if (!quietlog) {
 		char	*cw;
@@ -857,8 +878,13 @@
 	char	**pp;
 
 	for (pp = environ_pam; *pp != NULL; pp++) {
-		if (ok_to_export(*pp))
-			(void) putenv(*pp);
+		if (ok_to_export(*pp)) {
+			if (putenv(*pp) == -1) {
+				syslog(LOG_ERR, "putenv: %s: %m", *pp);
+				free(*pp);
+				return PAM_SYSTEM_ERR;
+			}
+		}
 		free(*pp);
 	}
 	return PAM_SUCCESS;
Index: usr.bin/make/job.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/make/job.c,v
retrieving revision 1.141
diff -u -r1.141 job.c
--- usr.bin/make/job.c	10 Aug 2005 16:50:36 -0000	1.141
+++ usr.bin/make/job.c	16 Aug 2005 17:37:54 -0000
@@ -408,7 +408,8 @@
 	} else {
 		char new_value[32];
 		sprintf(new_value, "%d", level + 1);
-		setenv(MKLVL_ENVVAR, new_value, 1);
+		if (setenv(MKLVL_ENVVAR, new_value, 1) == -1)
+			Punt("setenv: %s: can't allocate memory", MKLVL_ENVVAR);
 	}
 }
 
@@ -2387,7 +2388,8 @@
 			fifoMaster = 1;
 			fcntl(fifoFd, F_SETFL, O_NONBLOCK);
 			env = fifoName;
-			setenv("MAKE_JOBS_FIFO", env, 1);
+			if (setenv("MAKE_JOBS_FIFO", env, 1) == -1)
+				Punt("setenv: MAKE_JOBS_FIFO: can't allocate memory");
 			while (maxproc-- > 0) {
 				write(fifoFd, "+", 1);
 			}
Index: usr.bin/make/main.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/make/main.c,v
retrieving revision 1.140
diff -u -r1.140 main.c
--- usr.bin/make/main.c	3 Aug 2005 18:34:39 -0000	1.140
+++ usr.bin/make/main.c	16 Aug 2005 17:37:54 -0000
@@ -1004,8 +1004,10 @@
 		const char *p;
 
 		p = Var_Value(".MAKEFLAGS", VAR_GLOBAL);
-		if (p != NULL && *p != '\0')
-			setenv("MAKEFLAGS", p, 1);
+		if (p != NULL && *p != '\0') {
+			if (setenv("MAKEFLAGS", p, 1) == -1)
+				Punt("setenv: MAKEFLAGS: can't allocate memory");
+		}
 	}
 
 	/*
Index: usr.bin/make/var.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/make/var.c,v
retrieving revision 1.217
diff -u -r1.217 var.c
--- usr.bin/make/var.c	5 Aug 2005 22:42:12 -0000	1.217
+++ usr.bin/make/var.c	16 Aug 2005 17:37:54 -0000
@@ -998,7 +998,8 @@
 			 * are automatically exported to the
 			 * environment (as per POSIX standard)
 			 */
-			setenv(n, val, 1);
+			if (setenv(n, val, 1) == -1)
+				Punt( "setenv: %s: can't allocate memory", n);
 		}
 	} else {
 		Buf_Clear(v->val);
@@ -1010,7 +1011,8 @@
 			 * are automatically exported to the
 			 * environment (as per POSIX standard)
 			 */
-			setenv(n, val, 1);
+			if (setenv(n, val, 1) == -1)
+				Punt( "setenv: %s: can't allocate memory", n);
 		}
 
 	}
@@ -1054,12 +1056,14 @@
 	if (v == NULL) {
 		Lst_AtFront(&VAR_ENV->context,
 		    VarCreate(name, NULL, VAR_TO_ENV));
-		setenv(name, "", 1);
+		if (setenv(name, "", 1) == -1)
+			Punt( "setenv: %s: can't allocate memory", name);
 		Error("Warning: .EXPORTVAR: set on undefined variable %s", name);
 	} else {
 		if ((v->flags & VAR_TO_ENV) == 0) {
 			v->flags |= VAR_TO_ENV;
-			setenv(v->name, Buf_Data(v->val), 1);
+			if (setenv(v->name, Buf_Data(v->val), 1) == -1)
+				Punt( "setenv: %s: can't allocate memory", v->name);	
 		}
 	}
 }
Index: usr.bin/objformat/objformat.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/objformat/objformat.c,v
retrieving revision 1.17
diff -u -r1.17 objformat.c
--- usr.bin/objformat/objformat.c	20 Apr 2005 21:39:00 -0000	1.17
+++ usr.bin/objformat/objformat.c	16 Aug 2005 17:37:55 -0000
@@ -169,7 +169,8 @@
 
 	path = strdup(objformat_path);
 
-	setenv("OBJFORMAT", objformat, 1);
+	if (setenv("OBJFORMAT", objformat, 1) == -1)
+		err(1, "setenv: OBJFORMAT");
 
 	/*
 	 * objformat_path could be sequence of colon-separated paths.
Index: usr.bin/su/su.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/su/su.c,v
retrieving revision 1.8
diff -u -r1.8 su.c
--- usr.bin/su/su.c	14 Mar 2005 11:55:33 -0000	1.8
+++ usr.bin/su/su.c	16 Aug 2005 17:37:55 -0000
@@ -396,21 +396,30 @@
 			/* set the su'd user's environment & umask */
 			setusercontext(lc, pwd, pwd->pw_uid, LOGIN_SETPATH|LOGIN_SETUMASK|LOGIN_SETENV);
 #else
-			setenv("PATH", _PATH_DEFPATH, 1);
+			if (setenv("PATH", _PATH_DEFPATH, 1) == -1)
+				err(1, "setenv: PATH");
 #endif
-			if (p)
-				setenv("TERM", p, 1);
+			if (p) {
+				if (setenv("TERM", p, 1) == -1)
+					err(1, "setenv: TERM");
+			}
 #ifdef KERBEROS5
-			if (ccname)
-				setenv("KRB5CCNAME", ccname, 1);
+			if (ccname) {
+				if (setenv("KRB5CCNAME", ccname, 1) == -1)
+					err(1, "setenv: KRB5CCNAME");
+			}
 #endif
 			if (chdir(pwd->pw_dir) < 0)
 				errx(1, "no directory");
 		}
-		if (asthem || pwd->pw_uid)
-			setenv("USER", pwd->pw_name, 1);
-		setenv("HOME", pwd->pw_dir, 1);
-		setenv("SHELL", shell, 1);
+		if (asthem || pwd->pw_uid) {
+			if (setenv("USER", pwd->pw_name, 1) == -1)
+				err(1, "setenv: USER");
+		}
+		if (setenv("HOME", pwd->pw_dir, 1) == -1)
+			err(1, "setenv: HOME");
+		if (setenv("SHELL", shell, 1) == -1)
+			err(1, "setenv: SHELL");
 	}
 	if (iscsh == YES) {
 		if (fastlogin)
Index: usr.bin/tabs/tabs.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/tabs/tabs.c,v
retrieving revision 1.1
diff -u -r1.1 tabs.c
--- usr.bin/tabs/tabs.c	19 Jun 2004 22:03:08 -0000	1.1
+++ usr.bin/tabs/tabs.c	16 Aug 2005 17:37:55 -0000
@@ -108,12 +108,14 @@
 				errx(1, "%s: invalid increment", arg + 1);
 		} else if (arg[1] == 'T') {
 			/* -Ttype or -T type */
-			if (arg[2] != '\0')
-				setenv("TERM", arg + 2, 1);
-			else {
+			if (arg[2] != '\0') {
+				if (setenv("TERM", arg + 2, 1) == -1)
+					err(1, "setenv: TERM");
+			} else {
 				if ((arg = *++argv) == NULL)
 					usage();
-				setenv("TERM", arg, 1);
+				if (setenv("TERM", arg, 1) == -1)
+					err(1, "setenv: TERM");
 			}
 		} else if (arg[1] == '-') {
 			arg = *++argv;
Index: usr.bin/whereis/whereis.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/whereis/whereis.c,v
retrieving revision 1.2
diff -u -r1.2 whereis.c
--- usr.bin/whereis/whereis.c	23 Jul 2004 06:24:27 -0000	1.2
+++ usr.bin/whereis/whereis.c	16 Aug 2005 17:37:55 -0000
@@ -384,7 +384,8 @@
 		errx(EX_DATAERR, "no directories to search");
 
 	if (opt_m) {
-		setenv("MANPATH", colonify(mandirs), 1);
+		if (setenv("MANPATH", colonify(mandirs), 1) == -1)
+			err(1, "setenv: MANPATH");
 		if ((i = regcomp(&re, MANWHEREISMATCH, REG_EXTENDED)) != 0) {
 			regerror(i, &re, buf, BUFSIZ - 1);
 			errx(EX_UNAVAILABLE, "regcomp(%s) failed: %s",
Index: usr.bin/window/wwenviron.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/window/wwenviron.c,v
retrieving revision 1.2
diff -u -r1.2 wwenviron.c
--- usr.bin/window/wwenviron.c	17 Jun 2003 04:29:34 -0000	1.2
+++ usr.bin/window/wwenviron.c	16 Aug 2005 17:37:55 -0000
@@ -92,9 +92,11 @@
 	 */
 	(void) sprintf(buf, "%sco#%d:li#%d:%s",
 		WWT_TERMCAP, wp->ww_w.nc, wp->ww_w.nr, wwwintermcap);
-	(void) setenv("TERMCAP", buf, 1);
+	if (setenv("TERMCAP", buf, 1) == -1)
+		goto bad;
 	(void) sprintf(buf, "%d", wp->ww_id + 1);
-	(void) setenv("WINDOW_ID", buf, 1);
+	if (setenv("WINDOW_ID", buf, 1) == -1)
+		goto bad;
 	return 0;
 bad:
 	wwerrno = WWE_SYS;
Index: usr.bin/window/wwinit.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/window/wwinit.c,v
retrieving revision 1.2
diff -u -r1.2 wwinit.c
--- usr.bin/window/wwinit.c	17 Jun 2003 04:29:34 -0000	1.2
+++ usr.bin/window/wwinit.c	16 Aug 2005 17:37:55 -0000
@@ -303,7 +303,8 @@
 	 * since tt_init() has already made its own copy of it and
 	 * wwterm now points to the copy.
 	 */
-	(void) setenv("TERM", WWT_TERM, 1);
+	if (setenv("TERM", WWT_TERM, 1) == -1)
+		goto bad;
 #ifdef TERMINFO
 	if (wwterminfoinit() < 0)
 		goto bad;
Index: usr.bin/window/wwterminfo.c
===================================================================
RCS file: /home/dcvs/src/usr.bin/window/wwterminfo.c,v
retrieving revision 1.2
diff -u -r1.2 wwterminfo.c
--- usr.bin/window/wwterminfo.c	17 Jun 2003 04:29:34 -0000	1.2
+++ usr.bin/window/wwterminfo.c	16 Aug 2005 17:37:55 -0000
@@ -68,7 +68,10 @@
 		wwerrno = WWE_SYS;
 		return -1;
 	}
-	(void) setenv("TERMINFO", wwterminfopath, 1);
+	if (setenv("TERMINFO", wwterminfopath, 1) == -1) {
+		wwerrno = WWE_SYS;
+		return -1;
+	}
 		/* make a termcap entry and turn it into terminfo */
 	(void) sprintf(buf, "%s/cap", wwterminfopath);
 	if ((fp = fopen(buf, "w")) == NULL) {
Index: usr.sbin/acpi/Makefile.inc
===================================================================
RCS file: /home/dcvs/src/usr.sbin/acpi/Makefile.inc,v
retrieving revision 1.3
diff -u -r1.3 Makefile.inc
--- usr.sbin/acpi/Makefile.inc	16 Aug 2005 10:31:35 -0000	1.3
+++ usr.sbin/acpi/Makefile.inc	16 Aug 2005 17:37:55 -0000
@@ -1,24 +1,16 @@
 # $Id: Makefile.inc,v 1.1 2000/07/14 18:16:22 iwasaki Exp $
 # $FreeBSD: src/usr.sbin/acpi/Makefile.inc,v 1.8 2003/08/07 16:51:50 njl Exp $
-# $DragonFly: src/usr.sbin/acpi/Makefile.inc,v 1.3 2005/08/16 10:31:35 y0netan1 Exp $
+# $DragonFly: src/usr.sbin/acpi/Makefile.inc,v 1.2 2005/03/11 18:27:49 y0netan1 Exp $
 
 SYSDIR?= ${.CURDIR}/../../../sys
-.include "${SYSDIR}/conf/acpi.mk"
+OSACPI_DIR= ${SYSDIR}/dev/acpica5
+.include "${OSACPI_DIR}/Makefile.inc"
 
-.PATH:		${.OBJDIR}				\
-		${SYSDIR}/${ACPICA_DIR}			\
-		${SYSDIR}/${ACPICA_DIR}/compiler	\
-		${SYSDIR}/${ACPICA_DIR}/common
+.PATH:		${SYSACPICA_DIR}		\
+		${SYSACPICA_DIR}/compiler	\
+		${SYSACPICA_DIR}/common
 
-CFLAGS+=	-I${.OBJDIR}				\
-		-I${SYSDIR}/${OSACPI_MI_DIR}		\
-		-I${SYSDIR}/${ACPICA_DIR}/include	\
-		-I${SYSDIR}/${ACPICA_DIR}/compiler
-
-SRCS+=		${.OBJDIR}/acpi.h ${.OBJDIR}/platform/acenv.h
-
-CLEANFILES+=	${.OBJDIR}/acpi.h
-CLEANDIRS+=	${.OBJDIR}/platform
+CFLAGS+=	-I${SYSACPICA_DIR}/compiler
 
 .if exists(${.CURDIR}/../../Makefile.inc)
 .include "${.CURDIR}/../../Makefile.inc"
Index: usr.sbin/cron/cron/cron.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/cron/cron/cron.c,v
retrieving revision 1.6
diff -u -r1.6 cron.c
--- usr.sbin/cron/cron/cron.c	18 Dec 2004 22:48:03 -0000	1.6
+++ usr.sbin/cron/cron/cron.c	16 Aug 2005 17:37:56 -0000
@@ -88,7 +88,10 @@
 	set_cron_cwd();
 
 #if defined(POSIX)
-	setenv("PATH", _PATH_DEFPATH, 1);
+	if (setenv("PATH", _PATH_DEFPATH, 1) == -1) {
+		log_it("CRON",getpid(),"DEATH","setenv: PATH: can't allocate memory");
+		exit(ERROR_EXIT);
+	}
 #endif
 
 	/* if there are no debug flags turned on, fork as a daemon should.
Index: usr.sbin/inetd/inetd.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/inetd/inetd.c,v
retrieving revision 1.8
diff -u -r1.8 inetd.c
--- usr.sbin/inetd/inetd.c	21 Mar 2005 19:26:14 -0000	1.8
+++ usr.sbin/inetd/inetd.c	16 Aug 2005 17:37:57 -0000
@@ -504,7 +504,10 @@
 
 		memset(dummy, 'x', DUMMYSIZE - 1);
 		dummy[DUMMYSIZE - 1] = '\0';
-		setenv("inetd_dummy", dummy, 1);
+		if (setenv("inetd_dummy", dummy, 1) == -1) {
+			syslog(LOG_ERR, "setenv: inetd_dummy: %m");
+			exit(EX_OSERR);
+		}
 	}
 
 	if (pipe(signalpipe) != 0) {
Index: usr.sbin/pkg_install/add/main.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/add/main.c,v
retrieving revision 1.11
diff -u -r1.11 main.c
--- usr.sbin/pkg_install/add/main.c	12 Aug 2005 15:57:22 -0000	1.11
+++ usr.sbin/pkg_install/add/main.c	16 Aug 2005 17:37:57 -0000
@@ -238,9 +238,8 @@
 	    errx(1, "chroot to %s failed", Chroot);
     }
     /* Make sure the sub-execs we invoke get found */
-    setenv("PATH", 
-	   "/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin",
-	   1);
+    if (setenv("PATH", "/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin", 1) == -1)
+	err(1, "setenv: PATH");
 
     /* Set a reasonable umask */
     umask(022);
Index: usr.sbin/pkg_install/add/perform.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/add/perform.c,v
retrieving revision 1.5
diff -u -r1.5 perform.c
--- usr.sbin/pkg_install/add/perform.c	18 Dec 2004 22:48:04 -0000	1.5
+++ usr.sbin/pkg_install/add/perform.c	16 Aug 2005 17:37:57 -0000
@@ -139,8 +139,10 @@
 		errx(1, "unable to make playpen for %lld bytes", (long long)sb.st_size * 4);
 	    where_to = Home;
 	    /* Since we can call ourselves recursively, keep notes on where we came from */
-	    if (!getenv("_TOP"))
-		setenv("_TOP", Home, 1);
+	    if (!getenv("_TOP")) {
+		if (setenv("_TOP", Home, 1) == -1)
+			err(1, "setenv: TOP");
+	    }
 	    if (unpack(pkg_fullname, extract)) {
 		warnx(
 	"unable to extract table of contents file from '%s' - not a package?",
@@ -231,7 +233,11 @@
 	add_plist_top(&Plist, PLIST_CWD, Prefix);
     }
 
-    setenv(PKG_PREFIX_VNAME, (p = find_plist(&Plist, PLIST_CWD)) ? p->name : ".", 1);
+    if (setenv(PKG_PREFIX_VNAME, (p = find_plist(&Plist, PLIST_CWD)) ? p->name : ".", 1) == -1) {
+	warnx("setenv: PKG_PREFIX_VNAME: can't allocate memory");
+	goto fail;
+    }
+
     /* Protect against old packages with bogus @name and origin fields */
     if (Plist.name == NULL)
 	Plist.name = "anonymous";
Index: usr.sbin/pkg_install/create/perform.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/create/perform.c,v
retrieving revision 1.4
diff -u -r1.4 perform.c
--- usr.sbin/pkg_install/create/perform.c	18 Dec 2004 22:48:04 -0000	1.4
+++ usr.sbin/pkg_install/create/perform.c	16 Aug 2005 17:37:57 -0000
@@ -71,10 +71,12 @@
     }
     if (Zipper == BZIP2) {
 	suf = "tbz";
-	setenv("BZIP2", "--best", 0);
+	if (setenv("BZIP2", "--best", 0) == -1)
+		err(2, "setenv: BZIP2");
     } else if (Zipper == GZIP) {
 	suf = "tgz";
-	setenv("GZIP", "-9", 0);
+	if (setenv("GZIP", "-9", 0) == -1)
+		err(2, "setenv: GZIP");
     } else
 	suf = "tar";
 
Index: usr.sbin/pkg_install/delete/perform.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/delete/perform.c,v
retrieving revision 1.4
diff -u -r1.4 perform.c
--- usr.sbin/pkg_install/delete/perform.c	18 Dec 2004 22:48:04 -0000	1.4
+++ usr.sbin/pkg_install/delete/perform.c	16 Aug 2005 17:37:57 -0000
@@ -218,7 +218,10 @@
 	return 1;
     }
 
-    setenv(PKG_PREFIX_VNAME, p->name, 1);
+    if (setenv(PKG_PREFIX_VNAME, p->name, 1) == -1) {
+	warn("setenv: PKG_PREFIX_VNAME");
+	return 1;
+    }
 
     if (fexists(REQUIRE_FNAME)) {
 	if (Verbose)
Index: usr.sbin/pkg_install/lib/pkgwrap.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/lib/pkgwrap.c,v
retrieving revision 1.2
diff -u -r1.2 pkgwrap.c
--- usr.sbin/pkg_install/lib/pkgwrap.c	30 Jul 2004 04:46:13 -0000	1.2
+++ usr.sbin/pkg_install/lib/pkgwrap.c	16 Aug 2005 17:37:57 -0000
@@ -79,7 +79,8 @@
 	cp++;
     strlcat(buffer, "/", sizeof(buffer));
     strlcat(buffer, cp, sizeof(buffer));
-    setenv("PKG_NOWRAP", "1", 1);
+    if (setenv("PKG_NOWRAP", "1", 1) == -1)
+	err(1, "setenv: PKG_NOWRAP");
     execve(buffer, argv, environ);
 
 nowrap:
Index: usr.sbin/pkg_install/sign/pgp_sign.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pkg_install/sign/pgp_sign.c,v
retrieving revision 1.4
diff -u -r1.4 pgp_sign.c
--- usr.sbin/pkg_install/sign/pgp_sign.c	18 Dec 2004 22:48:04 -0000	1.4
+++ usr.sbin/pkg_install/sign/pgp_sign.c	16 Aug 2005 17:37:57 -0000
@@ -273,7 +273,10 @@
 			sleep(1);
 			close(fd[1]);
 			sprintf(buf, "%d", fd[0]);
-			setenv("PGPPASSFD", buf, 1);
+			if (setenv("PGPPASSFD", buf, 1) == -1) {
+				perror("pkg_sign");
+				exit(EXIT_FAILURE);
+			}
 			printf("Parent process PGPPASSFD=%d.\n", fd[0]);
 		}
 	}
Index: usr.sbin/pstat/pstat.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/pstat/pstat.c,v
retrieving revision 1.15
diff -u -r1.15 pstat.c
--- usr.sbin/pstat/pstat.c	17 Mar 2005 17:28:44 -0000	1.15
+++ usr.sbin/pstat/pstat.c	16 Aug 2005 17:37:57 -0000
@@ -226,7 +226,8 @@
 			fileflag = 1;
 			break;
 		case 'k':
-			putenv("BLOCKSIZE=1K");
+			if (putenv("BLOCKSIZE=1K") == -1)
+				err(1, "putenv: BLOCKSIZE=1K");
 			break;
 		case 'M':
 			memf = optarg;
Index: usr.sbin/tzsetup/tzsetup.c
===================================================================
RCS file: /home/dcvs/src/usr.sbin/tzsetup/tzsetup.c,v
retrieving revision 1.4
diff -u -r1.4 tzsetup.c
--- usr.sbin/tzsetup/tzsetup.c	19 Feb 2005 01:43:06 -0000	1.4
+++ usr.sbin/tzsetup/tzsetup.c	16 Aug 2005 17:37:58 -0000
@@ -586,7 +586,13 @@
 	time_t t = time(0);
 	int rv;
 	
-	setenv("TZ", filename, 1);
+	if (setenv("TZ", filename, 1) == -1) {
+		asprintf(&msg, "setenv: TZ: %s",
+			strerror(errno));
+		dialog_mesgbox("Error", msg, 8, 72);
+		free(msg);
+		return 0;
+	}
 	tzset();
 	tm = localtime(&t);
 




More information about the Submit mailing list