diff options
author | Sven Eden <yamakuzure@gmx.net> | 2018-08-14 18:39:33 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-08-24 16:47:08 +0200 |
commit | 1a7523a8c73ff91109c459da6f0af2fd3585e1e7 (patch) | |
tree | 0de40838449f2e1b051669c1360f5b7f959e20fc /src/basic/fileio.c | |
parent | 5df5d72136c7c0b4a45a76463cb3441404f29cb4 (diff) |
Prep v239: Add missing updates that evaded migration.
Diffstat (limited to 'src/basic/fileio.c')
-rw-r--r-- | src/basic/fileio.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 60573f2ef..1cee6d495 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -1566,21 +1566,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; } #endif // 0 |