summaryrefslogtreecommitdiff
path: root/source3/modules/vfs_unityed_media.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/modules/vfs_unityed_media.c')
-rw-r--r--source3/modules/vfs_unityed_media.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/source3/modules/vfs_unityed_media.c b/source3/modules/vfs_unityed_media.c
index 435deeb0579..34881bc50b7 100644
--- a/source3/modules/vfs_unityed_media.c
+++ b/source3/modules/vfs_unityed_media.c
@@ -1444,30 +1444,31 @@ err:
return status;
}
-static char *um_realpath(vfs_handle_struct *handle,
- const char *path)
+static struct smb_filename *um_realpath(vfs_handle_struct *handle,
+ TALLOC_CTX *ctx,
+ const struct smb_filename *smb_fname)
{
- char *buf = NULL;
- char *client_path = NULL;
+ struct smb_filename *client_fname = NULL;
+ struct smb_filename *result_fname = NULL;
int status;
DEBUG(10, ("Entering um_realpath\n"));
- if (!is_in_media_files(path)) {
- return SMB_VFS_NEXT_REALPATH(handle, path);
+ if (!is_in_media_files(smb_fname->base_name)) {
+ return SMB_VFS_NEXT_REALPATH(handle, ctx, smb_fname);
}
- status = alloc_get_client_path(handle, talloc_tos(),
- path, &client_path);
+ status = alloc_get_client_smb_fname(handle, talloc_tos(),
+ smb_fname, &client_fname);
if (status != 0) {
goto err;
}
- buf = SMB_VFS_NEXT_REALPATH(handle, client_path);
+ result_fname = SMB_VFS_NEXT_REALPATH(handle, ctx, client_fname);
err:
- TALLOC_FREE(client_path);
- return buf;
+ TALLOC_FREE(client_fname);
+ return result_fname;
}
static int um_chflags(vfs_handle_struct *handle,