diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c index 9690f65b8a7..6dde546af88 100644 --- a/source3/lib/adouble.c +++ b/source3/lib/adouble.c @@ -1387,9 +1387,10 @@ static bool ad_convert_delete_adfile(vfs_handle_struct *handle, * otherwise **/ int ad_convert(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - const char *catia_mappings, - uint32_t flags) + struct files_struct *dirfsp, + const struct smb_filename *smb_fname, + const char *catia_mappings, + uint32_t flags) { struct adouble *ad = NULL; bool ok; diff --git a/source3/lib/adouble.h b/source3/lib/adouble.h index 71072d32560..90a825c502e 100644 --- a/source3/lib/adouble.h +++ b/source3/lib/adouble.h @@ -154,9 +154,10 @@ char *ad_get_entry(const struct adouble *ad, int eid); int ad_getdate(const struct adouble *ad, unsigned int dateoff, uint32_t *date); int ad_setdate(struct adouble *ad, unsigned int dateoff, uint32_t date); int ad_convert(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - const char *catia_mappings, - uint32_t flags); + struct files_struct *dirfsp, + const struct smb_filename *smb_fname, + const char *catia_mappings, + uint32_t flags); bool ad_unconvert(TALLOC_CTX *mem_ctx, struct vfs_handle_struct *handle, const char *catia_mappings, diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c index 5791be1d089..f39f6e136d9 100644 --- a/source3/modules/vfs_fruit.c +++ b/source3/modules/vfs_fruit.c @@ -4081,6 +4081,7 @@ static NTSTATUS fruit_create_file(vfs_handle_struct *handle, } ret = ad_convert(handle, + handle->conn->cwd_fsp, smb_fname, macos_string_replace_map, conv_flags); @@ -4194,7 +4195,11 @@ static NTSTATUS fruit_readdir_attr(struct vfs_handle_struct *handle, conv_flags |= AD_CONV_DELETE; } - ret = ad_convert(handle, fname, macos_string_replace_map, conv_flags); + ret = ad_convert(handle, + handle->conn->cwd_fsp, + fname, + macos_string_replace_map, + conv_flags); if (ret != 0) { DBG_ERR("ad_convert() failed\n"); return NT_STATUS_UNSUCCESSFUL;