Fix bug #9130 - Certain xattrs cause Windows error 0x800700FF
authorJeremy Allison <jra@samba.org>
Tue, 26 Mar 2013 23:55:03 +0000 (16:55 -0700)
committerKarolin Seeger <kseeger@samba.org>
Sun, 7 Apr 2013 19:40:19 +0000 (21:40 +0200)
Ensure we never return any zero-length EA's.

Signed-off-by: Jeremy Allison <jra@samba.org>
source3/smbd/trans2.c

index 304664932261c7bf55e6515bfdca5e74248925cf..87849f1066a15aac8bcb7d0bb0c29b2b0d58a34f 100644 (file)
@@ -328,6 +328,15 @@ static struct ea_list *get_ea_list_from_file(TALLOC_CTX *mem_ctx, connection_str
                        return NULL;
                }
 
+               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 +=