diff options
author | Ralph Boehme <slow@samba.org> | 2019-10-24 17:15:18 +0200 |
---|---|---|
committer | Ralph Boehme <slow@samba.org> | 2019-10-30 14:52:33 +0000 |
commit | f3df83a2c346d945487a27a9d258ee6331ea7dbb (patch) | |
tree | 50666e0e42a2b47f8c64dfb78c04161d2fc9c765 | |
parent | 9a3da6bebcdb924ca2027337544d79ac2088677e (diff) | |
download | samba-f3df83a2c346d945487a27a9d258ee6331ea7dbb.tar.gz |
lib/adouble: pass filesize to ad_unpack()
ad_unpack() needs the filesize, not the capped IO size we're using in the caller
to read up to "size" bystem from the ._ AppleDouble file.
This fixes a regression introduced by bdc257a1cbac7e8c73a084b618ba642476807483
for bug 13968.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14171
RN: vfs_fruit returns capped resource fork length
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Wed Oct 30 14:52:34 UTC 2019 on sn-devel-184
-rw-r--r-- | selftest/knownfail.d/samba3.vfs.fruit | 3 | ||||
-rw-r--r-- | source3/lib/adouble.c | 4 |
2 files changed, 3 insertions, 4 deletions
diff --git a/selftest/knownfail.d/samba3.vfs.fruit b/selftest/knownfail.d/samba3.vfs.fruit index 6982e100861..6307e2b3404 100644 --- a/selftest/knownfail.d/samba3.vfs.fruit +++ b/selftest/knownfail.d/samba3.vfs.fruit @@ -1,5 +1,2 @@ ^samba3.vfs.fruit streams_depot.OS X AppleDouble file conversion\(nt4_dc\) ^samba3.vfs.fruit streams_depot.OS X AppleDouble file conversion without embedded xattr\(nt4_dc\) -^samba3.vfs.fruit fruit_delete_empty_adfiles.resource fork IO\(nt4_dc\) -^samba3.vfs.fruit metadata_stream.resource fork IO\(nt4_dc\) -^samba3.vfs.fruit metadata_netatalk.resource fork IO\(nt4_dc\) diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c index 49ab8865d6a..84198ab2000 100644 --- a/source3/lib/adouble.c +++ b/source3/lib/adouble.c @@ -2180,7 +2180,9 @@ static ssize_t ad_read_rsrc_adouble(vfs_handle_struct *handle, } /* Now parse entries */ - ok = ad_unpack(ad, ADEID_NUM_DOT_UND, size); + ok = ad_unpack(ad, + ADEID_NUM_DOT_UND, + ad->ad_fsp->fsp_name->st.st_ex_size); if (!ok) { DBG_ERR("invalid AppleDouble resource %s\n", smb_fname->base_name); |