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

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Disseldorp <ddiss@suse.de>
source4/ntvfs/posix/pvfs_qfileinfo.c

index ac3e6a65f5acab757aa6159126f2762bdea69b12..33ff9ce3cba1c07a7745ee18d30a106f8268f08a 100644 (file)
@@ -102,6 +102,9 @@ NTSTATUS pvfs_query_ea_list(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
                for (j=0;j<ealist->num_eas;j++) {
                        if (strcasecmp_m(eas->eas[i].name.s, 
                                       ealist->eas[j].name) == 0) {
+                               if (ealist->eas[j].value.length == 0) {
+                                       continue;
+                               }
                                eas->eas[i].value = ealist->eas[j].value;
                                break;
                        }
@@ -134,6 +137,9 @@ static NTSTATUS pvfs_query_all_eas(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
        for (i=0;i<ealist->num_eas;i++) {
                eas->eas[eas->num_eas].flags = 0;
                eas->eas[eas->num_eas].name.s = ealist->eas[i].name;
+               if (ealist->eas[i].value.length == 0) {
+                       continue;
+               }
                eas->eas[eas->num_eas].value = ealist->eas[i].value;
                eas->num_eas++;
        }