r13497: Fix #3508 from jason@ncac.gwu.edu
authorJeremy Allison <jra@samba.org>
Tue, 14 Feb 2006 20:26:38 +0000 (20:26 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:10:07 +0000 (11:10 -0500)
Jeremy.

source/smbd/posix_acls.c

index 2befca40c2a2cff3d8edae0880d173005afa2edd..d4801d1743b0cc05c35f514f2a2731762ec09379 100644 (file)
@@ -4210,7 +4210,6 @@ BOOL can_write_to_file(connection_struct *conn, const char *fname, SMB_STRUCT_ST
 SEC_DESC* get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
 {
        SEC_DESC *psd, *ret_sd;
-       size_t sd_size;
        connection_struct conn;
        files_struct finfo;
        struct fd_handle fh;
@@ -4221,7 +4220,7 @@ SEC_DESC* get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
        conn.service = -1;
        
        if ( !(conn.mem_ctx = talloc_init( "novfs_get_nt_acl" )) ) {
-               DEBUG(0,("novfs_get_nt_acl: talloc() failed!\n"));
+               DEBUG(0,("get_nt_acl_no_snum: talloc() failed!\n"));
                return NULL;
        }
        
@@ -4229,7 +4228,8 @@ SEC_DESC* get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
        set_conn_connectpath(&conn, path);
        
        if (!smbd_vfs_init(&conn)) {
-               DEBUG(0,("novfs_get_nt_acl: Unable to create a fake connection struct!\n"));
+               DEBUG(0,("get_nt_acl_no_snum: Unable to create a fake connection struct!\n"));
+               conn_free_internal( &conn );
                return NULL;
         }
        
@@ -4243,7 +4243,11 @@ SEC_DESC* get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
        pstrcpy( filename, fname );
        finfo.fsp_name = filename;
        
-       sd_size = get_nt_acl( &finfo, DACL_SECURITY_INFORMATION, &psd );
+       if (get_nt_acl( &finfo, DACL_SECURITY_INFORMATION, &psd ) == 0) {
+               DEBUG(0,("get_nt_acl_no_snum: get_nt_acl returned zero.\n"));
+               conn_free_internal( &conn );
+               return NULL;
+       }
        
        ret_sd = dup_sec_desc( ctx, psd );