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) {
char *p;
_cleanup_free_ char *p = NULL;
int r;
assert(template);
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)
return -ENOMEM;
if (!mkdtemp(p)) {
free(p);
if (!mkdtemp(p))
return -errno;
}
*ret = p;
*ret = TAKE_PTR(p);
return 0;
}