mirror of
https://github.com/samba-team/samba.git
synced 2025-03-20 22:50:26 +03:00
vfs_fruit: pass stream size to delete_invalid_meta_stream()
delete_invalid_meta_stream() is meant to guard against random data being present in the FinderInfo stream. If the stream size is 0, it's likely a freshly created stream where no data has been written to yet, so don't delete it. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13646 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> (cherry picked from commit 6e13dbddaec9f8118e11309297f85c3cdfd22e43)
This commit is contained in:
parent
1078e220e5
commit
248b5fc305
@ -5332,7 +5332,8 @@ static NTSTATUS delete_invalid_meta_stream(
|
||||
const struct smb_filename *smb_fname,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
unsigned int *pnum_streams,
|
||||
struct stream_struct **pstreams)
|
||||
struct stream_struct **pstreams,
|
||||
off_t size)
|
||||
{
|
||||
struct smb_filename *sname = NULL;
|
||||
int ret;
|
||||
@ -5343,6 +5344,10 @@ static NTSTATUS delete_invalid_meta_stream(
|
||||
return NT_STATUS_INTERNAL_ERROR;
|
||||
}
|
||||
|
||||
if (size == 0) {
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
sname = synthetic_smb_fname(talloc_tos(),
|
||||
smb_fname->base_name,
|
||||
AFPINFO_STREAM_NAME,
|
||||
@ -5396,8 +5401,12 @@ static NTSTATUS fruit_streaminfo_meta_stream(
|
||||
DBG_ERR("Removing invalid AFPINFO_STREAM size [%jd] from [%s]\n",
|
||||
(intmax_t)stream[i].size, smb_fname_str_dbg(smb_fname));
|
||||
|
||||
return delete_invalid_meta_stream(handle, smb_fname, mem_ctx,
|
||||
pnum_streams, pstreams);
|
||||
return delete_invalid_meta_stream(handle,
|
||||
smb_fname,
|
||||
mem_ctx,
|
||||
pnum_streams,
|
||||
pstreams,
|
||||
stream[i].size);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user