The branch, v3-6-test has been updated
       via  059ee631 s3: Fix the talloc hierarchy in shadow_copy2_connectpath
      from  4421c6f s3: This module needs rewriting...

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 059ee6313fd28e965f62b0ec3ebf583d8aa06566
Author: Volker Lendecke <v...@samba.org>
Date:   Mon Mar 14 18:35:36 2011 +0100

    s3: Fix the talloc hierarchy in shadow_copy2_connectpath
    
    We have to return on talloc_tos() because we don't have a mem_ctx given to 
us.
    So we have to create a separate temporary talloc context.
    
    Autobuild-User: Volker Lendecke <vlen...@samba.org>
    Autobuild-Date: Mon Mar 14 19:21:11 CET 2011 on sn-devel-104
    (cherry picked from commit 746b299ec1b11ea1e70c130b69a9a379ec478750)

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/vfs_shadow_copy2.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_shadow_copy2.c 
b/source3/modules/vfs_shadow_copy2.c
index 93330f4..e3c3f9f 100644
--- a/source3/modules/vfs_shadow_copy2.c
+++ b/source3/modules/vfs_shadow_copy2.c
@@ -684,7 +684,7 @@ static char *shadow_copy2_realpath(vfs_handle_struct 
*handle,
 static const char *shadow_copy2_connectpath(struct vfs_handle_struct *handle,
                                            const char *fname)
 {
-       TALLOC_CTX *tmp_ctx = talloc_stackframe();
+       TALLOC_CTX *tmp_ctx;
        const char *snapdir, *baseoffset, *basedir, *gmt_start;
        size_t baselen;
        char *ret;
@@ -695,7 +695,14 @@ static const char *shadow_copy2_connectpath(struct 
vfs_handle_struct *handle,
                return handle->conn->connectpath;
        }
 
-       fname = shadow_copy2_normalise_path(talloc_tos(), fname, gmt_start);
+        /*
+         * We have to create a real temporary context because we have
+         * to put our result on talloc_tos(). Thus we can't use a
+         * talloc_stackframe() here.
+         */
+       tmp_ctx = talloc_new(talloc_tos());
+
+       fname = shadow_copy2_normalise_path(tmp_ctx, fname, gmt_start);
        if (fname == NULL) {
                TALLOC_FREE(tmp_ctx);
                return NULL;


-- 
Samba Shared Repository

Reply via email to