• Sven Sandberg's avatar
    BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event · dc3ad27a
    Sven Sandberg authored
    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.
    dc3ad27a
log_event.h 116 KB