vfs_catia: fix the translation to "vfs_translate_to_windows"
[mat/samba.git] / source3 / modules / vfs_catia.c
index 3140df97f9a5ac67a312dbd519cd118ac956d1c0..145f384b3ba627eb4fa6a990bcccdde30c6d3a23 100644 (file)
@@ -300,7 +300,7 @@ static NTSTATUS catia_translate_name(struct vfs_handle_struct *handle,
 {
        char *name = NULL;
        char *mapped_name;
-       NTSTATUS ret;
+       NTSTATUS status, ret;
 
        /*
         * Copy the supplied name and free the memory for mapped_name,
@@ -313,12 +313,12 @@ static NTSTATUS catia_translate_name(struct vfs_handle_struct *handle,
                errno = ENOMEM;
                return NT_STATUS_NO_MEMORY;
        }
-       ret = catia_string_replace_allocate(handle->conn, name,
+       status = catia_string_replace_allocate(handle->conn, name,
                        &mapped_name, direction);
 
        TALLOC_FREE(name);
-       if (!NT_STATUS_IS_OK(ret)) {
-               return ret;
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
        }
 
        ret = SMB_VFS_NEXT_TRANSLATE_NAME(handle, mapped_name, direction,
@@ -326,6 +326,8 @@ static NTSTATUS catia_translate_name(struct vfs_handle_struct *handle,
 
        if (NT_STATUS_EQUAL(ret, NT_STATUS_NONE_MAPPED)) {
                *pmapped_name = talloc_move(mem_ctx, &mapped_name);
+               /* we need to return the former translation result here */
+               ret = status;
        } else {
                TALLOC_FREE(mapped_name);
        }