fruit_ftruncate_rsrc_adouble() is called to effectively ftruncate() the
._ AppleDouble file to the requested size.
The VFS function SMB_VFS_NEXT_FTRUNCATE() otoh would attempt to truncate
to fsp *stream* in any way the next VFS module seems fit. As we know
we're stacked with a streams module, the module will attempt to truncate
the stream. So we're not truncating the ._ file.
This went unnoticed as the AppleDouble file header contains the
authorative resource fork size that was updated correctly.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13076
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
ad_off = ad_getentryoff(ad, ADEID_RFORK);
- rc = SMB_VFS_NEXT_FTRUNCATE(handle, fsp, offset + ad_off);
+ rc = ftruncate(fsp->fh->fd, offset + ad_off);
if (rc != 0) {
TALLOC_FREE(ad);
return -1;