summaryrefslogtreecommitdiff
path: root/source4/ntvfs
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2013-03-26 16:38:00 -0700
committerDavid Disseldorp <ddiss@samba.org>2013-04-02 20:06:38 +0200
commitb96bc9fa260c397887ba6199181f3b8bca7046a6 (patch)
tree3e09fb21753a32a143b37a737a25bcc788c281d6 /source4/ntvfs
parent875bedddddc51df59f85ae7bbd7db52fbfb5ffef (diff)
downloadsamba-b96bc9fa260c397887ba6199181f3b8bca7046a6.tar.gz
samba-b96bc9fa260c397887ba6199181f3b8bca7046a6.tar.bz2
samba-b96bc9fa260c397887ba6199181f3b8bca7046a6.zip
Fix bug #9130 - Certain xattrs cause Windows error 0x800700FF
Ensure ntvfs server never returns zero length EA's. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: David Disseldorp <ddiss@suse.de>
Diffstat (limited to 'source4/ntvfs')
-rw-r--r--source4/ntvfs/posix/pvfs_qfileinfo.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source4/ntvfs/posix/pvfs_qfileinfo.c b/source4/ntvfs/posix/pvfs_qfileinfo.c
index ac3e6a65f5..33ff9ce3cb 100644
--- a/source4/ntvfs/posix/pvfs_qfileinfo.c
+++ b/source4/ntvfs/posix/pvfs_qfileinfo.c
@@ -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++;
}