Fix bug #9130 - Certain xattrs cause Windows error 0x800700FF
authorJeremy Allison <jra@samba.org>
Tue, 26 Mar 2013 23:37:22 +0000 (16:37 -0700)
committerDavid Disseldorp <ddiss@samba.org>
Tue, 2 Apr 2013 18:06:38 +0000 (20:06 +0200)
Ensure we never return any zero-length EA's.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Disseldorp <ddiss@suse.de>
source3/smbd/trans2.c

index 83988583b7387e5d682dca92a0ba490a4ae71e1c..b243af8f279c4a1d7ec6faecf1c93eeac2dbc33a 100644 (file)
@@ -358,6 +358,15 @@ static NTSTATUS get_ea_list_from_file_path(TALLOC_CTX *mem_ctx, connection_struc
                        return status;
                }
 
+               if (listp->ea.value.length == 0) {
+                       /*
+                        * We can never return a zero length EA.
+                        * Windows reports the EA's as corrupted.
+                        */
+                       TALLOC_FREE(listp);
+                       continue;
+               }
+
                push_ascii_fstring(dos_ea_name, listp->ea.name);
 
                *pea_total_len +=