util: allow mkdtemp_malloc() to be called with NULL pattern

In that case simply place the directory in /tmp.
This commit is contained in:
Lennart Poettering 2018-06-05 16:51:31 +02:00
parent c640710883
commit 3f40303993
1 changed files with 15 additions and 7 deletions

View File

@ -1560,21 +1560,29 @@ int read_nul_string(FILE *f, char **ret) {
} }
int mkdtemp_malloc(const char *template, char **ret) { int mkdtemp_malloc(const char *template, char **ret) {
char *p; _cleanup_free_ char *p = NULL;
int r;
assert(template);
assert(ret); assert(ret);
p = strdup(template); if (template)
p = strdup(template);
else {
const char *tmp;
r = tmp_dir(&tmp);
if (r < 0)
return r;
p = strjoin(tmp, "/XXXXXX");
}
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
if (!mkdtemp(p)) { if (!mkdtemp(p))
free(p);
return -errno; return -errno;
}
*ret = p; *ret = TAKE_PTR(p);
return 0; return 0;
} }