From 1160fcfe3d97644a6bcfa9ee687fd7dfca58e812 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 20 Nov 2014 16:33:22 +0100 Subject: vfs_streams_xattr: fix check with samba_private_attr_name() We want to check with samba_private_attr_name() whether the xattr name is a private one, unfortunately it flags xattrs that begin with the default streams prefix as private. By only calling samba_private_attr_name() in case the xattr does NOT begin with the default prefix, we know that if it returns 'true' it definitely one of our internal xattr like "user.DOSATTRIB". This fixes a bug introduced in 634bcb09a08b927fd79ae0e16aeee2a123605f94 that denied all access to valid stream xattrs. Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- source3/modules/vfs_streams_xattr.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/source3/modules/vfs_streams_xattr.c b/source3/modules/vfs_streams_xattr.c index 735db2b920..6314442515 100644 --- a/source3/modules/vfs_streams_xattr.c +++ b/source3/modules/vfs_streams_xattr.c @@ -687,13 +687,28 @@ static NTSTATUS walk_xattr_streams(vfs_handle_struct *handle, files_struct *fsp, for (i=0; iprefix, config->prefix_len) != 0) { continue; } - if (samba_private_attr_name(names[i])) { - continue; - } status = get_ea_value(names, handle->conn, fsp, fname, names[i], &ea); -- cgit