mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
e42d90850c
The problem was that a user could supply supply data in chunks via the COM_STMT_SEND_LONG_DATA command to prepared statement parameter other than of type TEXT or BLOB. This posed a problem since other parameter types aren't setup to handle long data, which would lead to a crash when attempting to use the supplied data. Given that long data can be supplied at any stage of a prepared statement, coupled with the fact that the type of a parameter marker might change between consecutive executions, the solution is to validate at execution time each parameter marker for which a data stream was provided. If the parameter type is not TEXT or BLOB (that is, if the type is not able to handle a data stream), a error is returned. sql/sql_prepare.cc: Before converting the parameter data stream, check the type compatibility. tests/mysql_client_test.c: Add test case. |
||
---|---|---|
.. | ||
.cvsignore | ||
auto_increment.res | ||
auto_increment.tst | ||
big_record.pl | ||
bug25714.c | ||
CMakeLists.txt | ||
connect_test.c | ||
deadlock_test.c | ||
drop_test.pl | ||
export.pl | ||
fork2_test.pl | ||
fork_big.pl | ||
fork_big2.pl | ||
function.res | ||
function.tst | ||
grant.pl | ||
grant.res | ||
index_corrupt.pl | ||
insert_and_repair.pl | ||
insert_test.c | ||
list_test.c | ||
lock_test.pl | ||
lock_test.res | ||
mail_to_db.pl | ||
Makefile.am | ||
myisam-big-rows.tst | ||
mysql_client_test.c | ||
pmail.pl | ||
rename_test.pl | ||
restore-lock.smack | ||
select_test.c | ||
showdb_test.c | ||
ssl_test.c | ||
table_types.pl | ||
test_delayed_insert.pl | ||
thread_test.c | ||
truncate.pl |