diff options
author | Jeremy Allison <jra@samba.org> | 2013-03-26 16:38:00 -0700 |
---|---|---|
committer | David Disseldorp <ddiss@samba.org> | 2013-04-02 20:06:38 +0200 |
commit | b96bc9fa260c397887ba6199181f3b8bca7046a6 (patch) | |
tree | 3e09fb21753a32a143b37a737a25bcc788c281d6 /source4/ntvfs | |
parent | 875bedddddc51df59f85ae7bbd7db52fbfb5ffef (diff) | |
download | samba-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.c | 6 |
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++; } |