Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jan 2011 07:27:30 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r217299 - stable/7/usr.bin/stat
Message-ID:  <201101120727.p0C7RUVT058193@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dougb
Date: Wed Jan 12 07:27:30 2011
New Revision: 217299
URL: http://svn.freebsd.org/changeset/base/217299

Log:
  MFC r188498 (partial):
  
  "I've changed main() to set file properly, so output() is never called
  with file set to NULL."
  
  Obtained from:	ed
  
  The other bits of that revision are related to using fdevname(3).
  This was never merged back to RELENG_7, however the cleanup of
  the code in this MFC is good both for general purposes, and diff
  reduction to HEAD (which in turn will make the following MFCs easier).

Modified:
  stable/7/usr.bin/stat/stat.c
Directory Properties:
  stable/7/usr.bin/stat/   (props changed)

Modified: stable/7/usr.bin/stat/stat.c
==============================================================================
--- stable/7/usr.bin/stat/stat.c	Wed Jan 12 05:37:13 2011	(r217298)
+++ stable/7/usr.bin/stat/stat.c	Wed Jan 12 07:27:30 2011	(r217299)
@@ -200,6 +200,7 @@ main(int argc, char *argv[])
 	int ch, rc, errs, am_readlink;
 	int lsF, fmtchar, usestat, fn, nonl, quiet;
 	char *statfmt, *options, *synopsis;
+	const char *file;
 
 	am_readlink = 0;
 	lsF = 0;
@@ -300,22 +301,25 @@ main(int argc, char *argv[])
 
 	errs = 0;
 	do {
-		if (argc == 0)
+		if (argc == 0) {
+			file = "(stdin)";
 			rc = fstat(STDIN_FILENO, &st);
-		else if (usestat)
-			rc = stat(argv[0], &st);
-		else
-			rc = lstat(argv[0], &st);
+		} else {
+			file = argv[0];
+			if (usestat)
+				rc = stat(file, &st);
+			else
+				rc = lstat(file, &st);
+		}
 
 		if (rc == -1) {
 			errs = 1;
 			linkfail = 1;
 			if (!quiet)
-				warn("%s: stat",
-				    argc == 0 ? "(stdin)" : argv[0]);
+				warn("%s: stat", file);
 		}
 		else
-			output(&st, argv[0], statfmt, fn, nonl, quiet);
+			output(&st, file, statfmt, fn, nonl, quiet);
 
 		argv++;
 		argc--;
@@ -828,10 +832,7 @@ format1(const struct stat *st,
 	case SHOW_filename:
 		small = 0;
 		data = 0;
-		if (file == NULL)
-			(void)strncpy(path, "(stdin)", sizeof(path));
-		else
-			(void)strncpy(path, file, sizeof(path));
+		(void)strncpy(path, file, sizeof(path));
 		sdata = path;
 		formats = FMTF_STRING;
 		if (ofmt == 0)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101120727.p0C7RUVT058193>