summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2015-05-21 13:23:49 +0000
committertrasz <trasz@FreeBSD.org>2015-05-21 13:23:49 +0000
commitc0941dd28e1fec3ca4e1c782afa4ce3817817a40 (patch)
tree8749ad251f2eee23aec8a62a4532935a4b206723 /usr.sbin
parentf55d10feb94acfdf2f187041fd410f57119ba49b (diff)
downloadFreeBSD-src-c0941dd28e1fec3ca4e1c782afa4ce3817817a40.zip
FreeBSD-src-c0941dd28e1fec3ca4e1c782afa4ce3817817a40.tar.gz
MFC r279812:
Remove some particularly bad code; no functional changes. MFC r279815: Erm, revert chunk committed by mistake. Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/autofs/common.c49
1 files changed, 6 insertions, 43 deletions
diff --git a/usr.sbin/autofs/common.c b/usr.sbin/autofs/common.c
index f9687c2..395838d 100644
--- a/usr.sbin/autofs/common.c
+++ b/usr.sbin/autofs/common.c
@@ -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 char *s2, char separator)
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 char *s2, char separator)
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) {
OpenPOWER on IntegriCloud