We don't check for errors that may occur during data printing.
client/mysql.cc:
Fix for bug #22913: mysql --quick doesn't report some errors.
- check for errors after the data output.
- Add two null bytes in "buff" variable allowing us to call
get_arg two times also for strings longer than sizeof(buff)
client/mysql.cc:
Make sure there are _two_ zero bytes at the end of buff, to allow 'get_arg' to be
called twice on long strings. The first time it will mark end of string with a
zero and the second time it will "skip ahead" to the first zero, and the find the
second one indicating end of buff.
mysql-test/r/mysql.result:
Update test results
mysql-test/t/mysql.test:
Add tests for "com_connect" function in mysql
Add test reported in bug
into zippy.cornsilk.net:/home/cmiller/work/mysql/bug17583/my50-bug17583
BitKeeper/deleted/.del-collapsed~fbec3523369aae99:
Delete: BitKeeper/etc/collapsed
BitKeeper/etc/collapsed:
'Auto converge'
client/mysql.cc:
Auto merged
BitKeeper/deleted/.del-mysql_client.result:
File is gone.
BitKeeper/deleted/.del-mysql_client.test:
File is gone.
When the client program had its stdout file descriptor closed by the calling
shell, after some amount of work (enough to fill a socket buffer) the server
would complain about a packet error and then disconnect the client.
This is a serious security problem. If stdout is closed before the mysql is
exec()d, then the first socket() call allocates file number 1 to communicate
with the server. Subsequent write()s to that file number (as when printing
results that come back from the database) go back to the server instead in
the command channel. So, one should be able to craft data which, upon being
selected back from the server to the client, and injected into the command
stream become valid MySQL protocol to do something nasty when sent /back/ to
the server.
The solution is to close explicitly the file descriptor that we *printf() to,
so that the libc layer and the OS layer both agree that the file is closed.
BitKeeper/etc/collapsed:
BitKeeper file /home/cmiller/work/mysql/bug17583/my41-bug17583/BitKeeper/etc/collapsed
client/mysql.cc:
If standard output is not open (specifically, if dup() of its file number
fails) then we explicitly close it so that future uses of the file descriptor
behave correctly for a closed file.
mysql-test/r/mysql_client.result:
Prove that the problem of writing SQL output to the command socket no longer
exists.
mysql-test/t/mysql_client.test:
Prove that the problem of writing SQL output to the command socket no longer
exists.
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
include/m_ctype.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/strict.result:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/field.cc:
Auto merged
sql/item_func.cc:
Auto merged
Print version_comment after server version in:
mysql.cc: Welcome message and 'status' command output
log.cc: Top of log files
client/mysql.cc:
Add server_version_string() function to return a buffer with the server version and version_comment combined.
Use server_version_string() instead of mysql_get_server_info() for Welcome! message and 'status' command
sql/log.cc:
MYSQL_LOG::open():
- print MYSQL_COMPILATION_COMMENT after the server_version at the top of log files
Fix: "mysql --xml" now print NULL values the same way that "mysqldump --xml" does:
<field name="name" xsi:nil="true" />
to distinguish from empty strings:
<field name="name"></field>
and from string "NULL":
<field name="name">NULL</field>
client/mysql.cc:
Fixing to print NULLs differently from empty strings
mysql-test/r/client_xml.result:
Fixing test result accordingly
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_string.cc:
Auto merged
strings/strtod.c:
Auto merged
client/mysql.cc:
Manual merge.
mysql-test/r/ctype_utf8.result:
Manual merge.
The column's NOT NULL flag doesn't affect what we should print. Remove the
wrong logic that does check it.
Also, verify that this and the previous two tests print the same data as
other output formats.
client/mysql.cc:
Don't check the column's NOT NULL flag when determining whether to print
"NULL" or not.
mysql-test/r/mysql.result:
Add results and confirm that the other output forms give the same results
for other similar tests.
mysql-test/t/mysql.test:
Add regression tests for this bug and two similar bugs.
into maint2.mysql.com:/data/localhome/tsmith/bk/50
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/net_serv.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
vio/viosocket.c:
Auto merged
client/mysql.cc:
Manual merge.
mysql-test/t/ctype_recoding.test:
Manual merge.
sql/sql_lex.h:
SCCS merged
sql/sql_table.cc:
Manual merge.
mysql-test/r/ctype_recoding.result:
Manual merge
- possible stack overflow fixed.
client/mysql.cc:
Fix for bug #21142: Malformed insert causes a segmentation fault.
- as 'line' may be longer than 'buff' we must take into account its length.
The mysql client uses the default character set on reconnect. The default character set is now controled by the client charset command while the client is running. The charset command now also issues a SET NAMES command to the server to make sure that the client's charset settings are in sync with the server's.
client/mysql.cc:
Client charset command now changes the default character set and issues a SET NAMES command to the server.
mysql-test/r/mysql.result:
Corrected results for new behaviour.
mysql-test/t/mysql.test:
Removed redundant commands from test.
SIGINT is handled in funny ways on windows, which could lead to problems when
Control-C was pressed in the client during a long-running query. Now Control-C
during a query aborts that query (by sending KILL to the server on a second
connexion), while Control-C outside of a running query terminates the client.
client/mysql.cc:
Bug#17926: mysql.exe crashes when ctrl-c is pressed in windows
Rather than tear down the client right away, open a second connexion to server
on SIGINT and send a KILL for the first connexion. Only if we receive another
SIGINT before the KILL goes through (or if no query was running in the first
place) do we terminate the client.
into bk-internal.mysql.com:/data0/bk/mysql-5.0-kt
client/mysql.cc:
Auto merged
mysql-test/r/im_life_cycle.result:
Auto merged
mysql-test/t/im_life_cycle.imtest:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.h:
Auto merged
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/union.result:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/field.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/func_group.result:
Merge manually
mysql-test/t/func_group.test:
Merge manually
- make the client to respect the server-side
no_backslash_escapes option and disable the
special meaning of backslash also at client side.
mysql-test/r/mysql_client.result:
Bug #20103: Escaping with backslash does not work
- test case
mysql-test/t/mysql_client.test:
Bug #20103: Escaping with backslash does not work
- test case
- 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
"I want to have the current delimiter in the prompt so that I can know at
a glance which is set."
Add a 'l' format specifier that represents the current statement delimiter.
client/mysql.cc:
Add a 'l' prompt format specifier, which becomes the current delimiter
string in the prompt.
client/mysql.cc:
Auto merged
client/sql_string.h:
Auto merged
configure.in:
Auto merged
myisam/mi_create.c:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_string.h:
Auto merged
sql/table.cc:
Auto merged
Old option ordering in the help was confusing to some users. Changed
ordering of deprecated options to be consistent, and added mention to
entry for options with a "--no-option" variant mentioning the
"--disable-option" variant.
client/mysql.cc:
Rearranged options for clarity. Deprecated "--no-X" options now
follow the "--X" option, and all of the "--X" options that have a
"--no-X" variant now mention the "--disable-X" variant.
do not look for client-specific commands while inside a multi-line comment.
we will allow multi-comments pretty much anywhere within SQL-statements,
but client-specific commands (help, use, print, ...) must be the first token
in the input.
client/mysql.cc:
Bug#20432: mysql client interprets commands in comments
mysql-test/r/mysql_client.result:
Bug#20432: mysql client interprets commands in comments
test client-side parsing of comments and client-specific commands
mysql-test/t/mysql_client.test:
Bug#20432: mysql client interprets commands in comments
test client-side parsing of comments and client-specific commands
Using \U or \u in a prompt with the mysql command-line client could
crash when connecting to the instance manager, since it does not return
information about the user when asked by the client. This is fixed by
having the client use what it knowns about the user (or giving up and
saying "(unknown)").
client/mysql.cc:
init_username() may not retrieve a username (such as from the instance
manager), in which case we fall back to what was specified on the command
line (or .cnf file) or finally (unknown).
client/mysql.cc:
Remove trailing spaces from help arguments in com_server_help.
Disregard trailing spaces from command in com_help.
mysql-test/r/mysql_client.result:
Test trailing spaces on the help command.
mysql-test/t/mysql_client.test:
Result trailing spaces on the help command.
The problem was missing break; operator.
BitKeeper/etc/ignore:
Added client/#mysql.cc# to the ignore list
client/mysql.cc:
Fixed bug #19363: mysql --no_pager makes core dump.
There was break; missing in the case statement.
The problem happened because "mysql" didn't send mysql_select_db() if
the current active database was specified in USE.
Now it always send mysql_select_db().
Rebuilding of completion hash is skipped in the same db is used
(for performance purposes).
Correct a bug (that I introduced, after using Oracle's database software for
too many years) where the length of the database-sent data is incorrectly
used to infer NULLness.
client/mysql.cc:
No longer use the length of the data to infer whether it is NULL or not.
mysql-test/r/mysql.result:
Add result and version marker, and correct previous result.
mysql-test/t/mysql.test:
Add test and version marker
- Add a check to see if the .mysql_history file a symlink to /dev/null
and in such case, skip reading and writing to it.
client/mysql.cc:
Add check to detect if the "mysql_history" file is a symlink to /dev/null.
In that case, don't create histfile variable.
That will make read_history and write_history to be skipped.
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
extra/yassl/src/template_instnt.cpp:
Auto merged
extra/yassl/taocrypt/src/template_instnt.cpp:
Auto merged
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
configure.in:
Auto merged
extra/yassl/include/openssl/rsa.h:
Auto merged
extra/yassl/include/yassl_int.hpp:
Auto merged
extra/yassl/include/yassl_types.hpp:
Auto merged
extra/yassl/src/template_instnt.cpp:
Auto merged
extra/yassl/taocrypt/include/integer.hpp:
Auto merged
extra/yassl/taocrypt/include/misc.hpp:
Auto merged
extra/yassl/taocrypt/src/algebra.cpp:
Auto merged
extra/yassl/taocrypt/src/template_instnt.cpp:
Auto merged
mysql-test/t/disabled.def:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
extra/yassl/include/openssl/ssl.h:
Manual merge
extra/yassl/src/handshake.cpp:
Manual merge
extra/yassl/src/yassl_int.cpp:
Manual merge
extra/yassl/taocrypt/include/runtime.hpp:
Manual merge
extra/yassl/taocrypt/src/integer.cpp:
Manual merge
mysql-test/mysql-test-run.pl:
Manual merge
mysql-test/r/trigger.result:
Manual merge
mysql-test/t/trigger.test:
Manual merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
client/mysql.cc:
Auto merged
include/mysql.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql-common/client.c:
SCCS merged
- Add function mysql_get_ssl_cipher
- Use function mysql_get_ssl_cipher from mysql
client/mysql.cc:
Backport fix for mysql client not using SSl library directly
include/mysql.h:
Backport fix for mysql client not using SSl library directly
libmysql/libmysql.def:
Backport fix for mysql client not using SSl library directly
libmysqld/libmysqld.def:
Backport fix for mysql client not using SSl library directly
sql-common/client.c:
Backport fix for mysql client not using SSl library directly
- Add new function 'ssl_verify_server_cert' which is used if we are
connecting to the server with SSL. It will compare the hostname in
the server's cert against the hostname that we used when connecting
to the server. Will reject the connection if hostname does not match.
- Add new option "OPT_SSL_VERIFY_SERVER_CERT" to be passed to mysql_options
which will turn on checking of servers cert.
- Add new argument "ssl-verify-server-cert" to all mysql* clients which
will activate the above option.
- Generate a new server cert with 1024 bits that has "localhost" as the server name.
SSL/server-cert.pem:
Generate a new server cert that has "localhost" as CN, so that we can test to verify the hostname we connected against with the hostname in the cert
client/client_priv.h:
Add OPT_SSL_VERIFY_CERT
client/mysql.cc:
Pass the variable "opt_ssl_verify_server_cert" to the mysql_options function. It's processed/included by include/sslopt*.h files
client/mysqladmin.cc:
Pass the variable "opt_ssl_verify_server_cert" to the mysql_options function. It's processed/included by include/sslopt*.h files
client/mysqldump.c:
Pass the variable "opt_ssl_verify_server_cert" to the mysql_options function. It's processed/included by include/sslopt*.h files
client/mysqlimport.c:
Pass the variable "opt_ssl_verify_server_cert" to the mysql_options function. It's processed/included by include/sslopt*.h files
client/mysqlshow.c:
Pass the variable "opt_ssl_verify_server_cert" to the mysql_options function. It's processed/included by include/sslopt*.h files
client/mysqltest.c:
Always set opt_ssl_verify_server_cert on in mysqltest if we are using SSL
include/mysql.h:
Add variable ssl_verify_cerver_cert
include/sslopt-longopts.h:
Add ssl-verify-server-cert options to all clients.
include/sslopt-vars.h:
Add opt_ssl_varify_server_cert to all clients.
sql-common/client.c:
Add ssl_vertify_server_cert function which is executed if user has set the option ssl_verify_cerver_cert
vio/viosslfactories.c:
Ask the SSL library to verify servers cert by setting the SSL_VERIFY_PEER flag