mirror of
https://github.com/MariaDB/server.git
synced 2026-04-29 11:45:32 +02:00
merge mysql-5.5->mysql-5.5-security
This commit is contained in:
commit
e8313e13aa
300 changed files with 6924 additions and 2594 deletions
|
|
@ -8885,24 +8885,18 @@ skip_to_ssl:
|
|||
|
||||
|
||||
/**
|
||||
Make sure that when sending plugin supplued data to the client they
|
||||
Make sure that when sending plugin supplied data to the client they
|
||||
are not considered a special out-of-band command, like e.g.
|
||||
\255 (error) or \254 (change user request packet).
|
||||
To avoid this we send plugin data packets starting with one of these
|
||||
2 bytes "wrapped" in a command \1.
|
||||
For the above reason we have to wrap plugin data packets starting with
|
||||
\1 as well.
|
||||
\255 (error) or \254 (change user request packet) or \0 (OK).
|
||||
To avoid this the server will send all plugin data packets "wrapped"
|
||||
in a command \1.
|
||||
Note that the client will continue sending its replies unrwapped.
|
||||
*/
|
||||
|
||||
#define IS_OUT_OF_BAND_PACKET(packet,packet_len) \
|
||||
((packet_len) > 0 && \
|
||||
(*(packet) == 1 || *(packet) == 255 || *(packet) == 254))
|
||||
|
||||
static inline int
|
||||
wrap_plguin_data_into_proper_command(NET *net,
|
||||
const uchar *packet, int packet_len)
|
||||
{
|
||||
DBUG_ASSERT(IS_OUT_OF_BAND_PACKET(packet, packet_len));
|
||||
return net_write_command(net, 1, (uchar *) "", 0, packet, packet_len);
|
||||
}
|
||||
|
||||
|
|
@ -8939,13 +8933,8 @@ static int server_mpvio_write_packet(MYSQL_PLUGIN_VIO *param,
|
|||
res= send_server_handshake_packet(mpvio, (char*) packet, packet_len);
|
||||
else if (mpvio->status == MPVIO_EXT::RESTART)
|
||||
res= send_plugin_request_packet(mpvio, packet, packet_len);
|
||||
else if (IS_OUT_OF_BAND_PACKET(packet, packet_len))
|
||||
res= wrap_plguin_data_into_proper_command(mpvio->net, packet, packet_len);
|
||||
else
|
||||
{
|
||||
res= my_net_write(mpvio->net, packet, packet_len) ||
|
||||
net_flush(mpvio->net);
|
||||
}
|
||||
res= wrap_plguin_data_into_proper_command(mpvio->net, packet, packet_len);
|
||||
mpvio->packets_written++;
|
||||
DBUG_RETURN(res);
|
||||
}
|
||||
|
|
@ -9716,7 +9705,8 @@ mysql_declare_plugin(mysql_password)
|
|||
0x0100, /* Version (1.0) */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
NULL /* config options */
|
||||
NULL, /* config options */
|
||||
0, /* flags */
|
||||
},
|
||||
{
|
||||
MYSQL_AUTHENTICATION_PLUGIN, /* type constant */
|
||||
|
|
@ -9730,7 +9720,8 @@ mysql_declare_plugin(mysql_password)
|
|||
0x0100, /* Version (1.0) */
|
||||
NULL, /* status variables */
|
||||
NULL, /* system variables */
|
||||
NULL /* config options */
|
||||
NULL, /* config options */
|
||||
0, /* flags */
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue