diff options
author | Volker Lendecke <vl@samba.org> | 2014-09-19 16:58:52 +0200 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2014-09-20 06:03:13 +0200 |
commit | 0f9669eb9f141a9543becf090bd2c9a4a46e1d15 (patch) | |
tree | bec5ef23354cf888f9c3d869f162375325f7a429 | |
parent | 6d450b3b48bd51b7e244711e7c6f832e0e27d8ee (diff) | |
download | samba-0f9669eb9f141a9543becf090bd2c9a4a46e1d15.tar.gz samba-0f9669eb9f141a9543becf090bd2c9a4a46e1d15.tar.xz samba-0f9669eb9f141a9543becf090bd2c9a4a46e1d15.zip |
lib/util: Drop unnecessary use of talloc_tos()
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
-rw-r--r-- | lib/util/util.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/util/util.c b/lib/util/util.c index 1dc1f1d517..3ba7e4d61a 100644 --- a/lib/util/util.c +++ b/lib/util/util.c @@ -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; } |