DROP DATABASE with symlinks did not work before

parent 3facae33
...@@ -46771,6 +46771,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}. ...@@ -46771,6 +46771,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet @itemize @bullet
@item @item
Fixed bug in DROP DATABASE with symlink
@item
Multi-table @code{DELETE}. Multi-table @code{DELETE}.
@item @item
Don't support old client protocols prior to MySQL 3.21 any more. Don't support old client protocols prior to MySQL 3.21 any more.
...@@ -271,9 +271,16 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *org_path, ...@@ -271,9 +271,16 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *org_path,
*/ */
if (!found_other_files) if (!found_other_files)
{ {
char tmp_path[FN_REFLEN]; char tmp_path[FN_REFLEN], lnk_path[FN_REFLEN];
char *path=unpack_filename(tmp_path,org_path); char *path=unpack_filename(tmp_path,org_path);
#ifdef HAVE_READLINK #ifdef HAVE_READLINK
if (path[0] == FN_CURLIB)
{
int length = (strxmov(lnk_path,curr_dir,path + 2, NullS) - lnk_path) - 1;
path=lnk_path;
if (path[length] == FN_LIBCHAR)
path[length]='\0';
}
int linkcount = readlink(path,filePath,sizeof(filePath)-1); int linkcount = readlink(path,filePath,sizeof(filePath)-1);
if (linkcount > 0) // If the path was a symbolic link if (linkcount > 0) // If the path was a symbolic link
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment