summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2015-03-26 10:09:46 -0700
committerKarolin Seeger <kseeger@samba.org>2015-04-08 21:34:26 +0200
commitef714b3f607f8ab4b233cf0c9552f06bb95693db (patch)
treecfdeda9eb3ec774ce4f24b1696febadac9c6ae2e
parent58deb20fd401157b3fbb6f983a5e334f303bdb93 (diff)
downloadsamba-ef714b3f607f8ab4b233cf0c9552f06bb95693db.tar.gz
s3: libsmbclient: Add missing talloc stackframe.
Bug 11177 - no talloc stackframe at ../source3/libsmb/clifsinfo.c:444, leaking memory https://bugzilla.samba.org/show_bug.cgi?id=11177 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Michael Adam <obnox@samba.org> Autobuild-User(master): Michael Adam <obnox@samba.org> Autobuild-Date(master): Thu Mar 26 22:21:30 CET 2015 on sn-devel-104 (cherry picked from commit 32cbbed979b931eeb5127629248a94d7e6f3fcfb)
-rw-r--r--source3/libsmb/libsmb_stat.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c
index 94449e0d86a..3c895cefd3e 100644
--- a/source3/libsmb/libsmb_stat.c
+++ b/source3/libsmb/libsmb_stat.c
@@ -312,9 +312,11 @@ SMBC_statvfs_ctx(SMBCCTX *context,
bool bIsDir;
struct stat statbuf;
SMBCFILE * pFile;
+ TALLOC_CTX *frame = talloc_stackframe();
/* Determine if the provided path is a file or a folder */
if (SMBC_stat_ctx(context, path, &statbuf) < 0) {
+ TALLOC_FREE(frame);
return -1;
}
@@ -322,6 +324,7 @@ SMBC_statvfs_ctx(SMBCCTX *context,
if (S_ISDIR(statbuf.st_mode)) {
/* It's a directory. */
if ((pFile = SMBC_opendir_ctx(context, path)) == NULL) {
+ TALLOC_FREE(frame);
return -1;
}
bIsDir = true;
@@ -329,11 +332,13 @@ SMBC_statvfs_ctx(SMBCCTX *context,
/* It's a file. */
if ((pFile = SMBC_open_ctx(context, path,
O_RDONLY, 0)) == NULL) {
+ TALLOC_FREE(frame);
return -1;
}
bIsDir = false;
} else {
/* It's neither a file nor a directory. Not supported. */
+ TALLOC_FREE(frame);
errno = ENOSYS;
return -1;
}
@@ -348,6 +353,7 @@ SMBC_statvfs_ctx(SMBCCTX *context,
SMBC_close_ctx(context, pFile);
}
+ TALLOC_FREE(frame);
return ret;
}
@@ -365,6 +371,7 @@ SMBC_fstatvfs_ctx(SMBCCTX *context,
uint32 fs_attrs = 0;
struct cli_state *cli = file->srv->cli;
struct smbXcli_tcon *tcon;
+ TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
tcon = cli->smb2.tcon;
@@ -488,5 +495,6 @@ SMBC_fstatvfs_ctx(SMBCCTX *context,
st->f_flags = flags;
#endif
+ TALLOC_FREE(frame);
return 0;
}