From 4ba76765697d78407a67612c61e5c9167e8e47cd Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 26 Mar 2015 10:09:46 -0700 Subject: [PATCH] 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 Reviewed-by: Michael Adam Autobuild-User(master): Michael Adam Autobuild-Date(master): Thu Mar 26 22:21:30 CET 2015 on sn-devel-104 (cherry picked from commit 32cbbed979b931eeb5127629248a94d7e6f3fcfb) --- source3/libsmb/libsmb_stat.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c index 94449e0..3c895ce 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; } -- 2.2.0.rc0.207.ga3a616c