summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myisam/mi_open.c2
-rw-r--r--mysys/my_symlink.c9
2 files changed, 7 insertions, 4 deletions
diff --git a/myisam/mi_open.c b/myisam/mi_open.c
index 442bf00b9d3..2a327e4bd35 100644
--- a/myisam/mi_open.c
+++ b/myisam/mi_open.c
@@ -142,7 +142,7 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags)
goto err;
}
/* Don't call realpath() if the name can't be a link */
- if (strcmp(name_buff, org_name) ||
+ if (!strcmp(name_buff, org_name) ||
my_readlink(index_name, org_name, MYF(0)) == -1)
(void) strmov(index_name, org_name);
(void) fn_format(data_name,org_name,"",MI_NAME_DEXT,2+4+16);
diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c
index 045802c5e61..7be3fcd36f0 100644
--- a/mysys/my_symlink.c
+++ b/mysys/my_symlink.c
@@ -26,9 +26,11 @@
/*
Reads the content of a symbolic link
If the file is not a symbolic link, return the original file name in to.
- Returns: 0 if table was a symlink,
- 1 if table was a normal file
- -1 on error.
+
+ RETURN
+ 0 If filename was a symlink, (to will be set to value of symlink)
+ 1 If filename was a normal file (to will be set to filename)
+ -1 on error.
*/
int my_readlink(char *to, const char *filename, myf MyFlags)
@@ -58,6 +60,7 @@ int my_readlink(char *to, const char *filename, myf MyFlags)
}
else
to[length]=0;
+ DBUG_PRINT("exit" ,("result: %d", result));
DBUG_RETURN(result);
#endif /* HAVE_READLINK */
}