Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Feb 2019 14:19:10 +0000 (UTC)
From:      Stefan Esser <se@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r343938 - stable/12/usr.bin/whereis
Message-ID:  <201902091419.x19EJAVX069456@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: se
Date: Sat Feb  9 14:19:09 2019
New Revision: 343938
URL: https://svnweb.freebsd.org/changeset/base/343938

Log:
  MFC r343408: Silence Clang Scan warnings regarding unsafe use of strcp().
  
  While these warnings are false positives, the use of strdup() instead of
  malloc() and strcpy() simplifies and clarifies the code.
  
  A bogus assignment to a variable (whose previous value may be required in
  a later block) has also been removed.

Modified:
  stable/12/usr.bin/whereis/whereis.c

Modified: stable/12/usr.bin/whereis/whereis.c
==============================================================================
--- stable/12/usr.bin/whereis/whereis.c	Sat Feb  9 14:13:49 2019	(r343937)
+++ stable/12/usr.bin/whereis/whereis.c	Sat Feb  9 14:19:09 2019	(r343938)
@@ -285,9 +285,9 @@ defaults(void)
 		bindirs[nele] = NULL;
 		if ((cp = getenv("PATH")) != NULL) {
 			/* don't destroy the original environment... */
-			if ((b = malloc(strlen(cp) + 1)) == NULL)
+			b = strdup(cp);
+			if (b == NULL)
 				abort();
-			strcpy(b, cp);
 			decolonify(b, &bindirs, &nele);
 		}
 	}
@@ -301,18 +301,18 @@ defaults(void)
 			err(EX_OSERR, "error processing manpath results");
 		if ((b = strchr(buf, '\n')) != NULL)
 			*b = '\0';
-		if ((b = malloc(strlen(buf) + 1)) == NULL)
+		b = strdup(buf);
+		if (b == NULL)
 			abort();
-		strcpy(b, buf);
 		nele = 0;
 		decolonify(b, &mandirs, &nele);
 	}
 
 	/* -s defaults to precompiled list, plus subdirs of /usr/ports */
 	if (!sourcedirs) {
-		if ((b = malloc(strlen(sourcepath) + 1)) == NULL)
+		b = strdup(sourcepath);
+		if (b == NULL)
 			abort();
-		strcpy(b, sourcepath);
 		nele = 0;
 		decolonify(b, &sourcedirs, &nele);
 
@@ -523,11 +523,9 @@ main(int argc, char **argv)
 						 * man -w found plain source
 						 * page, use it.
 						 */
-						s = strlen(buf);
-						cp2 = malloc(s + 1);
+						cp2 = strdup(buf);
 						if (cp2 == NULL)
 							abort();
-						strcpy(cp2, buf);
 					}
 
 					if (man == NULL) {



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