vfs_catia: fix the translation to "vfs_translate_to_windows"
authorGuenter Kukkukk <kukks@samba.org>
Wed, 27 Feb 2013 04:50:52 +0000 (05:50 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 7 Mar 2013 19:33:39 +0000 (11:33 -0800)
THANKS to an IRC user (Raimund ?) who asked for a char mapping possibility.
I suggested vfs_catia - but it did not work!
Hopefully now it will. :-)

Signed-off-by: Guenter Kukkukk <kukks@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
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);
        }