lib/util: Drop unnecessary use of talloc_tos()
authorVolker Lendecke <vl@samba.org>
Fri, 19 Sep 2014 14:58:52 +0000 (16:58 +0200)
committerMartin Schwenke <martins@samba.org>
Sat, 20 Sep 2014 04:03:13 +0000 (06:03 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
lib/util/util.c

index 1dc1f1d..3ba7e4d 100644 (file)
@@ -61,7 +61,8 @@ _PUBLIC_ const char *tmpdir(void)
 **/
 int create_unlink_tmp(const char *dir)
 {
-       char *fname;
+       size_t len = strlen(dir);
+       char fname[len+25];
        int fd;
        mode_t mask;
 
@@ -69,8 +70,8 @@ int create_unlink_tmp(const char *dir)
                dir = tmpdir();
        }
 
-       fname = talloc_asprintf(talloc_tos(), "%s/listenerlock_XXXXXX", dir);
-       if (fname == NULL) {
+       len = snprintf(fname, sizeof(fname), "%s/listenerlock_XXXXXX", dir);
+       if (len >= sizeof(fname)) {
                errno = ENOMEM;
                return -1;
        }
@@ -78,17 +79,14 @@ int create_unlink_tmp(const char *dir)
        fd = mkstemp(fname);
        umask(mask);
        if (fd == -1) {
-               TALLOC_FREE(fname);
                return -1;
        }
        if (unlink(fname) == -1) {
                int sys_errno = errno;
                close(fd);
-               TALLOC_FREE(fname);
                errno = sys_errno;
                return -1;
        }
-       TALLOC_FREE(fname);
        return fd;
 }