mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event
Problem: When an Incident_log_event contains a bad incident number on disk, the server crashes with an assertion. Fix: Don't validate input with assertions. Use errors. mysql-test/include/cleanup_fake_relay_log.inc: Added auxiliary file to restore things that setup_fake_relay_log.inc did. mysql-test/include/setup_fake_relay_log.inc: Added auxiliary file to setup replication from an existing relay log. mysql-test/std_data/bug40482-bin.000001: Binlog file for rpl.rpl_binlog_corruption mysql-test/suite/rpl/t/rpl_binlog_corruption.test: New test file. sql/log_event.cc: Check that the incident number is correct at the time the event is constructed. Do not assert it at the time it is printed. sql/log_event.h: Incident_log_event::is_valid() should verify that the incident number is valid. sql/rpl_constants.h: Incident numbers should be hard-coded, since they may appear in files.
This commit is contained in:
@@ -6,10 +6,10 @@
|
||||
*/
|
||||
enum Incident {
|
||||
/** No incident */
|
||||
INCIDENT_NONE,
|
||||
INCIDENT_NONE = 0,
|
||||
|
||||
/** There are possibly lost events in the replication stream */
|
||||
INCIDENT_LOST_EVENTS,
|
||||
INCIDENT_LOST_EVENTS = 1,
|
||||
|
||||
/** Shall be last event of the enumeration */
|
||||
INCIDENT_COUNT
|
||||
|
||||
Reference in New Issue
Block a user