Author: trasz
Date: Thu May 21 13:23:49 2015
New Revision: 283230
URL: https://svnweb.freebsd.org/changeset/base/283230

Log:
  MFC r279812:
  
  Remove some particularly bad code; no functional changes.
  
  MFC r279815:
  
  Erm, revert chunk committed by mistake.
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/10/usr.sbin/autofs/common.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/autofs/common.c
==============================================================================
--- stable/10/usr.sbin/autofs/common.c  Thu May 21 13:21:03 2015        
(r283229)
+++ stable/10/usr.sbin/autofs/common.c  Thu May 21 13:23:49 2015        
(r283230)
@@ -86,46 +86,7 @@ checked_strdup(const char *s)
 }
 
 /*
- * Take two pointers to strings, concatenate the contents with "/" in the
- * middle, make the first pointer point to the result, the second pointer
- * to NULL, and free the old strings.
- *
- * Concatenate pathnames, basically.
- */
-static void
-concat(char **p1, char **p2)
-{
-       int ret;
-       char *path;
-
-       assert(p1 != NULL);
-       assert(p2 != NULL);
-
-       if (*p1 == NULL)
-               *p1 = checked_strdup("");
-
-       if (*p2 == NULL)
-               *p2 = checked_strdup("");
-
-       ret = asprintf(&path, "%s/%s", *p1, *p2);
-       if (ret < 0)
-               log_err(1, "asprintf");
-
-       /*
-        * XXX
-        */
-       //free(*p1);
-       //free(*p2);
-
-       *p1 = path;
-       *p2 = NULL;
-}
-
-/*
  * Concatenate two strings, inserting separator between them, unless not 
needed.
- *
- * This function is very convenient to use when you do not care about freeing
- * memory - which is okay here, because we are a short running process.
  */
 char *
 separated_concat(const char *s1, const char *s2, char separator)
@@ -151,7 +112,7 @@ separated_concat(const char *s1, const c
        if (ret < 0)
                log_err(1, "asprintf");
 
-       //log_debugx("separated_concat: got %s and %s, returning %s", s1, s2, 
result);
+       //log_debugx("%s: got %s and %s, returning %s", __func__, s1, s2, 
result);
 
        return (result);
 }
@@ -159,7 +120,7 @@ separated_concat(const char *s1, const c
 void
 create_directory(const char *path)
 {
-       char *component, *copy, *tofree, *partial;
+       char *component, *copy, *tofree, *partial, *tmp;
        int error;
 
        assert(path[0] == '/');
@@ -169,12 +130,14 @@ create_directory(const char *path)
         */
        copy = tofree = checked_strdup(path + 1);
 
-       partial = NULL;
+       partial = checked_strdup("");
        for (;;) {
                component = strsep(&copy, "/");
                if (component == NULL)
                        break;
-               concat(&partial, &component);
+               tmp = separated_concat(partial, component, '/');
+               free(partial);
+               partial = tmp;
                //log_debugx("creating \"%s\"", partial);
                error = mkdir(partial, 0755);
                if (error != 0 && errno != EEXIST) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to