BUG#12929345 : Execution aborts without any messages (Windows only)

This patch corrects an unsafe string concatenation for a Windows-specific
code segment. The symptoms were, under certain conditions like specifying
the location of my-print-defaults and the basedir, and run on a release
build, the client would exit without printing any messages.
This commit is contained in:
Chuck Bell 2011-09-07 13:09:27 -04:00
parent a2dd614820
commit 5acc7cacae

View File

@ -846,12 +846,19 @@ static int process_options(int argc, char *argv[], char *operation)
{
i= (int)strlength(opt_basedir);
if (opt_basedir[i-1] != FN_LIBCHAR || opt_basedir[i-1] != FN_LIBCHAR2)
{
char buff[FN_REFLEN];
strncpy(buff, opt_basedir, sizeof(buff) - 1);
#ifdef __WIN__
if (opt_basedir[i-1] != '/')
strcat(opt_basedir, "//");
strncat(buff, "/", sizeof(buff) - 1);
#else
strcat(opt_basedir, FN_DIRSEP);
strncat(buff, FN_DIRSEP, sizeof(buff) - 1);
#endif
buff[sizeof(buff) - 1]= 0;
my_delete(opt_basedir, MYF(0));
opt_basedir= my_strdup(buff, MYF(MY_FAE));
}
}
/*