From d16fd4fed36ffa0aac6d857b4aa7f5923ac9b1f6 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 1 Feb 2017 11:36:25 -0800 Subject: [PATCH] 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 --- source3/modules/vfs_streams_xattr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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; -- 2.11.0.483.g087da7b7c-goog