From: Jeremy Allison Date: Wed, 1 Feb 2017 19:36:25 +0000 (-0800) Subject: s3: VFS: vfs_streams_xattr.c: Make streams_xattr_open() store the same path as stream... X-Git-Tag: talloc-2.1.9~281 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a24ba3e4083200ec9885363efc5769f43183fb6b;p=thirdparty%2Fsamba.git s3: VFS: vfs_streams_xattr.c: Make streams_xattr_open() store the same path as streams_xattr_recheck(). If the open is changing directories, fsp->fsp_name->base_name will be the full path from the share root, whilst smb_fname will be relative to the $cwd. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12546 Signed-off-by: Jeremy Allison Reviewed-by: Ralph Böhme Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Thu Feb 2 01:55:42 CET 2017 on sn-devel-144 --- diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c index d9eb2e10852..d3c988c9c5e 100644 --- a/source3/modules/vfs_streams_xattr.c +++ b/source3/modules/vfs_streams_xattr.c @@ -527,8 +527,15 @@ static int streams_xattr_open(vfs_handle_struct *handle, sio->xattr_name = talloc_strdup(VFS_MEMCTX_FSP_EXTENSION(handle, fsp), xattr_name); + /* + * so->base needs to be a copy of fsp->fsp_name->base_name, + * making it identical to streams_xattr_recheck(). If the + * open is changing directories, fsp->fsp_name->base_name + * will be the full path from the share root, whilst + * smb_fname will be relative to the $cwd. + */ sio->base = talloc_strdup(VFS_MEMCTX_FSP_EXTENSION(handle, fsp), - smb_fname->base_name); + fsp->fsp_name->base_name); sio->fsp_name_ptr = fsp->fsp_name; sio->handle = handle; sio->fsp = fsp;