]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
util: allow mkdtemp_malloc() to be called with NULL pattern
authorLennart Poettering <lennart@poettering.net>
Tue, 5 Jun 2018 14:51:31 +0000 (16:51 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 7 Jun 2018 15:38:49 +0000 (17:38 +0200)
In that case simply place the directory in /tmp.

src/basic/fileio.c

index 5837163fed19b189538f54e402c156f323e61e6d..11223d5db8a906f978a557c39284f34060a02ab8 100644 (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;
 }