summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-09-19 16:58:52 +0200
committerMartin Schwenke <martins@samba.org>2014-09-20 06:03:13 +0200
commit0f9669eb9f141a9543becf090bd2c9a4a46e1d15 (patch)
treebec5ef23354cf888f9c3d869f162375325f7a429
parent6d450b3b48bd51b7e244711e7c6f832e0e27d8ee (diff)
downloadsamba-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.c10
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;
}