Commit 5b333350 authored by Arun Kuruvila's avatar Arun Kuruvila

Bug #17168602 MYSQL_PLUGIN REMOVES NON-DIRECTORY TYPE FILES

              SPECIFIED WITH THE BASEDIR OPTION

Description: The mysql_plugin client attempts to remove any
filename specified to the --basedir option. The problem is 
that if the filename does not end with a slash, it will 
attempt to unlink it, which succeeds for files, but not for 
directories.

Analysis: When we are starting mysql_plugin with basedir 
option and if we are giving path of a file as basedir, it 
deletes that file. It was because it uses a function 
my_delete which unlinks the file path given.

Fix:  As a fix we replace that line using another function 
my_free, which will only free the  pointer which is having 
that file path.
parent b8c9a8a3
...@@ -856,7 +856,7 @@ static int process_options(int argc, char *argv[], char *operation) ...@@ -856,7 +856,7 @@ static int process_options(int argc, char *argv[], char *operation)
strncat(buff, FN_DIRSEP, sizeof(buff) - strlen(buff) - 1); strncat(buff, FN_DIRSEP, sizeof(buff) - strlen(buff) - 1);
#endif #endif
buff[sizeof(buff) - 1]= 0; buff[sizeof(buff) - 1]= 0;
my_delete(opt_basedir, MYF(0)); my_free(opt_basedir);
opt_basedir= my_strdup(buff, MYF(MY_FAE)); opt_basedir= my_strdup(buff, MYF(MY_FAE));
} }
} }
......
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