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) {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to