summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2013-07-09 16:21:18 -0700
committerAndrew Bartlett <abartlet@samba.org>2013-07-19 17:52:36 +1000
commit66e7b15982f188e8b1886eaacf850a7c623733d8 (patch)
tree4570fd2a7de6e5858c2de5b1a6a911fb12618e07 /source3/smbd
parentf246d69b9e38db8632ade65692078959e3ed4da8 (diff)
downloadsamba-66e7b15982f188e8b1886eaacf850a7c623733d8.tar.gz
samba-66e7b15982f188e8b1886eaacf850a7c623733d8.tar.bz2
samba-66e7b15982f188e8b1886eaacf850a7c623733d8.zip
Ensure we never return an EA name to a Windows client it can't handle.
Bug 9992 - Windows error 0x800700FE when copying files with xattr names containing ":" Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/trans2.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 7bce6ead1e..8532240fb9 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -345,6 +345,15 @@ static NTSTATUS get_ea_list_from_file_path(TALLOC_CTX *mem_ctx, connection_struc
|| samba_private_attr_name(names[i]))
continue;
+ /*
+ * Filter out any underlying POSIX EA names
+ * that a Windows client can't handle.
+ */
+ if (!lp_posix_pathnames() &&
+ is_invalid_windows_ea_name(names[i])) {
+ continue;
+ }
+
listp = talloc(mem_ctx, struct ea_list);
if (listp == NULL) {
return NT_STATUS_NO_MEMORY;