Commit graph

4 commits

Author SHA1 Message Date
unknown
76b353d307 Bug#17583: mysql drops connection when stdout is not writable
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.
2006-10-09 18:28:06 -04:00
unknown
4934231545 Bug#20328 - Correction to test/result for broken Windows build.
mysql-test/r/mysql_client.result:
  Removed OS dependant output.
mysql-test/t/mysql_client.test:
  Re-directed output to a temporary file because the actual output isn't important and was causing a Windows test failure.
2006-08-16 13:55:16 -04:00
unknown
f794dc3aa1 Manual merge required.
mysql-test/r/mysql_client.result:
  manual merge
mysql-test/t/mysql_client.test:
  manual merge
2006-07-19 17:39:53 -04:00
unknown
7621597785 Bug#20432: mysql client interprets commands in comments
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
2006-07-13 09:04:06 +02:00