mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug#21042 mysql client segfaults on importing a mysqldump export
- Use strmake, that will both protect the buffer and make sure it's terminated by a zero - Add test case client/mysql.cc: Use strmake instead of strxnmov as that function will make sure the string is terminated by 0 mysql-test/r/mysql.result: Update test result mysql-test/t/mysql.test: Add test case
This commit is contained in:
@ -2858,7 +2858,7 @@ com_connect(String *buffer, char *line)
|
|||||||
bzero(buff, sizeof(buff));
|
bzero(buff, sizeof(buff));
|
||||||
if (buffer)
|
if (buffer)
|
||||||
{
|
{
|
||||||
strxnmov(buff, sizeof(buff), line, NullS);
|
strmake(buff, line, sizeof(buff));
|
||||||
tmp= get_arg(buff, 0);
|
tmp= get_arg(buff, 0);
|
||||||
if (tmp && *tmp)
|
if (tmp && *tmp)
|
||||||
{
|
{
|
||||||
|
@ -114,4 +114,5 @@ a int(11) YES NULL
|
|||||||
b varchar(255) YES NULL
|
b varchar(255) YES NULL
|
||||||
c int(11) YES NULL
|
c int(11) YES NULL
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
ERROR 1049 (42000) at line 1: Unknown database 'verylongdatabasenamethatshouldblowthe256byteslongbufferincom_con'
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -86,6 +86,12 @@ create table t1(a int, b varchar(255), c int);
|
|||||||
--exec $MYSQL test -e "desc t1\g"
|
--exec $MYSQL test -e "desc t1\g"
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#21042 mysql client segfaults on importing a mysqldump export
|
||||||
|
#
|
||||||
|
--error 1
|
||||||
|
--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user