summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <jpipes@shakedown.(none)>2006-10-02 11:45:48 -0400
committerunknown <jpipes@shakedown.(none)>2006-10-02 11:45:48 -0400
commit89220d074773ce768c044ba6042c9bebe7935acb (patch)
tree2f4a41e50e56d5136e4d04988e053ae73602e884 /client
parent01a75941b22bac048a9502a1a256b1acb5dc3716 (diff)
downloadmariadb-git-89220d074773ce768c044ba6042c9bebe7935acb.tar.gz
Fix for Bug #21412 (client allows DELIMITER with backslash character)
BitKeeper/etc/ignore: Added mysql-test/t/tmp.test mysql-test/r/tmp.result client/tmp.diff to the ignore list client/mysql.cc: Fix for Bug #21412 (client allows DELIMITER with backslash) mysql-test/r/mysql.result: Added test case for Bug #21412 mysql-test/t/mysql.test: Added test case for Bug #21412
Diffstat (limited to 'client')
-rw-r--r--client/mysql.cc27
1 files changed, 24 insertions, 3 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index 5e09c309917..95336f4579f 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -800,10 +800,23 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
default_charset_used= 1;
break;
case OPT_DELIMITER:
- if (argument == disabled_my_option)
+ if (argument == disabled_my_option)
+ {
strmov(delimiter, DEFAULT_DELIMITER);
- else
- strmake(delimiter, argument, sizeof(delimiter) - 1);
+ }
+ else
+ {
+ /* Check that delimiter does not contain a backslash */
+ if (!strstr(argument, "\\"))
+ {
+ strmake(delimiter, argument, sizeof(delimiter) - 1);
+ }
+ else
+ {
+ put_info("DELIMITER cannot contain a backslash character", INFO_ERROR);
+ return 0;
+ }
+ }
delimiter_length= (uint)strlen(delimiter);
delimiter_str= delimiter;
break;
@@ -3011,6 +3024,14 @@ com_delimiter(String *buffer __attribute__((unused)), char *line)
INFO_ERROR);
return 0;
}
+ else
+ {
+ if (strstr(tmp, "\\"))
+ {
+ put_info("DELIMITER cannot contain a backslash character", INFO_ERROR);
+ return 0;
+ }
+ }
strmake(delimiter, tmp, sizeof(delimiter) - 1);
delimiter_length= (int)strlen(delimiter);
delimiter_str= delimiter;