summaryrefslogtreecommitdiff
path: root/src/basic/fileio.c
diff options
context:
space:
mode:
authorSven Eden <yamakuzure@gmx.net>2018-08-14 18:39:33 +0200
committerSven Eden <yamakuzure@gmx.net>2018-08-24 16:47:08 +0200
commit1a7523a8c73ff91109c459da6f0af2fd3585e1e7 (patch)
tree0de40838449f2e1b051669c1360f5b7f959e20fc /src/basic/fileio.c
parent5df5d72136c7c0b4a45a76463cb3441404f29cb4 (diff)
Prep v239: Add missing updates that evaded migration.
Diffstat (limited to 'src/basic/fileio.c')
-rw-r--r--src/basic/fileio.c22
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