Module Name:    src
Committed By:   snj
Date:           Tue Aug  4 20:01:54 UTC 2009

Modified Files:
        src/usr.bin/printenv [netbsd-5]: printenv.c

Log Message:
Pull up following revision(s) (requested by dholland in ticket #871):
        usr.bin/printenv/printenv.c: revision 1.10
(1) reject instead of ignore extra arguments;
(2) reject requests for environment variables containing '='
   (PR 41774, but with different patch)
(3) fix capitalization of usage message


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.9.4.1 src/usr.bin/printenv/printenv.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/printenv/printenv.c
diff -u src/usr.bin/printenv/printenv.c:1.9 src/usr.bin/printenv/printenv.c:1.9.4.1
--- src/usr.bin/printenv/printenv.c:1.9	Mon Jul 21 14:19:24 2008
+++ src/usr.bin/printenv/printenv.c	Tue Aug  4 20:01:54 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: printenv.c,v 1.9 2008/07/21 14:19:24 lukem Exp $	*/
+/*	$NetBSD: printenv.c,v 1.9.4.1 2009/08/04 20:01:54 snj Exp $	*/
 
 /*
  * Copyright (c) 1987, 1993
@@ -37,7 +37,7 @@
 
 #ifndef lint
 /*static char sccsid[] = "from: @(#)printenv.c	8.2 (Berkeley) 5/4/95";*/
-__RCSID("$NetBSD: printenv.c,v 1.9 2008/07/21 14:19:24 lukem Exp $");
+__RCSID("$NetBSD: printenv.c,v 1.9.4.1 2009/08/04 20:01:54 snj Exp $");
 #endif /* not lint */
 
 #include <sys/types.h>
@@ -46,6 +46,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <err.h>
 
 int	main __P((int, char **));
 void	usage __P((void));
@@ -80,6 +81,10 @@
 			(void)printf("%s\n", *ep);
 		exit(0);
 	}
+	if (argc != 1)
+		usage();
+	if (strchr(*argv, '=') != NULL)
+		errx(1, "Invalid environment variable %s", *argv);
 	len = strlen(*argv);
 	for (ep = environ; *ep; ep++)
 		if (!memcmp(*ep, *argv, len)) {
@@ -95,6 +100,6 @@
 void
 usage()
 {
-	(void)fprintf(stderr, "usage: printenv [name]\n");
+	(void)fprintf(stderr, "Usage: printenv [name]\n");
 	exit(1);
 }

Reply via email to