[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Fri Feb 7 16:02:04 MST 2014


The branch, master has been updated
       via  17adbbc s3: modules: streaminfo: As we have no VFS function SMB_VFS_LLISTXATTR we can't cope with a symlink when lp_posix_pathnames() is true.
      from  9088bde smbd: Fix memory overwrites

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 17adbbcad7e401dd544dfa76f7ec9aeb6a847381
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Feb 7 10:19:26 2014 -0800

    s3: modules: streaminfo: As we have no VFS function SMB_VFS_LLISTXATTR we can't cope with a symlink when lp_posix_pathnames() is true.
    
    Fix bug : Bug 10429 - samba returns STATUS_OBJECT_NAME_NOT_FOUND when attempting to remove dangling symlink
    
    https://bugzilla.samba.org/show_bug.cgi?id=10429
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Jeff Layton <jlayton at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sat Feb  8 00:01:16 CET 2014 on sn-devel-104

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

Summary of changes:
 source3/modules/vfs_streams_depot.c |   13 ++++++++++++-
 source3/modules/vfs_streams_xattr.c |   13 ++++++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_streams_depot.c b/source3/modules/vfs_streams_depot.c
index ae1af24..8ba07fc 100644
--- a/source3/modules/vfs_streams_depot.c
+++ b/source3/modules/vfs_streams_depot.c
@@ -877,8 +877,19 @@ static NTSTATUS streams_depot_streaminfo(vfs_handle_struct *handle,
 	state.handle = handle;
 	state.status = NT_STATUS_OK;
 
-	status = walk_streams(handle, smb_fname_base, NULL, collect_one_stream,
+	if (S_ISLNK(smb_fname_base->st.st_ex_mode)) {
+		/*
+		 * Currently we do't have SMB_VFS_LLISTXATTR
+		 * inside the VFS which means there's no way
+		 * to cope with a symlink when lp_posix_pathnames().
+		 * returns true. For now ignore links.
+		 * FIXME - by adding SMB_VFS_LLISTXATTR. JRA.
+		 */
+		status = NT_STATUS_OK;
+	} else {
+		status = walk_streams(handle, smb_fname_base, NULL, collect_one_stream,
 			      &state);
+	}
 
 	if (!NT_STATUS_IS_OK(status)) {
 		TALLOC_FREE(state.streams);
diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c
index 355c47c..5e9bd3e 100644
--- a/source3/modules/vfs_streams_xattr.c
+++ b/source3/modules/vfs_streams_xattr.c
@@ -793,8 +793,19 @@ static NTSTATUS streams_xattr_streaminfo(vfs_handle_struct *handle,
 	state.handle = handle;
 	state.status = NT_STATUS_OK;
 
-	status = walk_xattr_streams(handle->conn, fsp, fname,
+	if (S_ISLNK(sbuf.st_ex_mode)) {
+		/*
+		 * Currently we do't have SMB_VFS_LLISTXATTR
+		 * inside the VFS which means there's no way
+		 * to cope with a symlink when lp_posix_pathnames().
+		 * returns true. For now ignore links.
+		 * FIXME - by adding SMB_VFS_LLISTXATTR. JRA.
+		 */
+		status = NT_STATUS_OK;
+	} else {
+		status = walk_xattr_streams(handle->conn, fsp, fname,
 				    collect_one_stream, &state);
+	}
 
 	if (!NT_STATUS_IS_OK(status)) {
 		TALLOC_FREE(state.streams);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list