1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-18 07:48:43 +03:00
Files
mariadb/mysql-test/r
evgen@sunlight.local af660df0ef Fixed bug#17366: Unchecked Item_int results in server crash
When there is conjunction of conds, the substitute_for_best_equal_field()
will call the eliminate_item_equal() function in loop to build final
expression. But if eliminate_item_equal() finds that some cond will always
evaluate to 0, then that cond will be substituted by Item_int with value ==
0. In this case on the next iteration eliminate_item_equal() will get that 
Item_int and treat it as Item_cond. This is leads to memory corruption and
server crash on cleanup phase.

To the eliminate_item_equal() function was added DBUG_ASSERT for checking
that all items treaten as Item_cond are really Item_cond.
The substitute_for_best_equal_field() now checks that if
eliminate_item_equal() returns Item_int and it's value is 0 then this 
value is returned as the result of whole conjunction.
2006-03-13 21:11:15 +03:00
..
2005-11-21 21:11:28 +04:00
2005-10-13 11:28:06 +02:00
2005-11-03 16:17:11 +04:00
2006-01-12 13:08:49 +04:00
2005-09-08 18:15:05 +01:00
2005-09-15 21:05:42 +02:00
2005-08-29 22:35:48 -05:00
2005-08-15 14:19:56 -07:00
2006-01-21 21:50:54 +04:00
2006-02-07 13:26:35 +01:00
2005-08-26 22:25:45 -07:00
2005-11-01 11:43:34 +04:00
2005-09-09 12:47:57 +02:00
2006-02-06 11:35:13 -08:00
2006-01-06 00:47:49 +02:00
2006-02-02 23:56:08 -08:00
2006-02-03 00:07:36 +03:00
2005-12-06 21:28:13 +01:00
2005-10-28 02:36:19 +03:00
2005-08-12 17:57:19 +03:00
2006-01-27 21:20:28 -08:00
2005-08-29 21:06:45 +02:00
2005-09-14 12:24:14 +03:00
2005-12-06 21:28:13 +01:00
2005-10-12 15:19:51 +02:00
2006-02-07 19:57:31 +01:00
2005-12-14 00:23:46 +02:00
2005-08-26 22:25:45 -07:00
2005-09-15 22:21:30 +04:00
2005-08-19 11:38:14 +03:00
2005-08-24 19:37:27 +03:00
2005-10-07 15:09:44 +05:00
2005-09-14 23:12:01 +03:00
2006-01-13 16:27:38 +03:00
2005-10-13 11:28:06 +02:00
2005-10-13 11:28:06 +02:00
2005-10-10 19:38:58 +02:00
2005-08-11 18:42:22 +01:00
2005-11-29 16:46:51 +04:00
2005-11-30 13:10:08 -08:00
2006-02-14 08:24:01 +04:00
2006-02-01 20:43:43 -08:00