diff options
author | unknown <ramil/ram@mysql.com/ramil.myoffice.izhnet.ru> | 2007-04-16 12:28:02 +0500 |
---|---|---|
committer | unknown <ramil/ram@mysql.com/ramil.myoffice.izhnet.ru> | 2007-04-16 12:28:02 +0500 |
commit | be90800c9f7fed4fdae2acfa12f2ea369eeb07e7 (patch) | |
tree | 65990f1ef349da6bdb79d29bfb4c458daf474a48 /client | |
parent | 0ab74abc6395af5949d3797c6a9037f3317a0acd (diff) | |
download | mariadb-git-be90800c9f7fed4fdae2acfa12f2ea369eeb07e7.tar.gz |
Fix for
bug #27715: mysqld --character-sets-dir buffer overflow
bug ##26851: Mysql Client --pager Buffer Overflow
Using strmov() to copy an argument may cause overflow
if the argument's length is bigger than the buffer:
use strmake instead.
Also, we have to encrease the error message buffer size to fit
the longest message.
client/mysql.cc:
Fix for
bug #27715: mysqld --character-sets-dir buffer overflow
bug ##26851: Mysql Client --pager Buffer Overflow
- use strmake() instead of strmov() to avoid buffer overflow.
mysql-test/r/mysql.result:
Fix for
bug #27715: mysqld --character-sets-dir buffer overflow
bug ##26851: Mysql Client --pager Buffer Overflow
- test result.
mysql-test/t/mysql.test:
Fix for
bug #27715: mysqld --character-sets-dir buffer overflow
bug ##26851: Mysql Client --pager Buffer Overflow
- test case.
mysys/charset.c:
Fix for
bug #27715: mysqld --character-sets-dir buffer overflow
bug ##26851: Mysql Client --pager Buffer Overflow
- encrease error message buffer size to fit the (possible) longest message.
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index 510420fdf3d..2ea464c2bdf 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -808,7 +808,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), break; #endif case OPT_CHARSETS_DIR: - strmov(mysql_charsets_dir, argument); + strmake(mysql_charsets_dir, argument, sizeof(mysql_charsets_dir) - 1); charsets_dir = mysql_charsets_dir; break; case OPT_DEFAULT_CHARSET: @@ -861,7 +861,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), if (argument && strlen(argument)) { default_pager_set= 1; - strmov(pager, argument); + strmake(pager, argument, sizeof(pager) - 1); strmov(default_pager, pager); } else if (default_pager_set) |