diff options
author | Jeremy Allison <jra@samba.org> | 2015-03-26 10:09:46 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2015-04-08 21:34:26 +0200 |
commit | ef714b3f607f8ab4b233cf0c9552f06bb95693db (patch) | |
tree | cfdeda9eb3ec774ce4f24b1696febadac9c6ae2e | |
parent | 58deb20fd401157b3fbb6f983a5e334f303bdb93 (diff) | |
download | samba-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.c | 8 |
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; } |