• Michael Widenius's avatar
    Fixed bug lp:917689 "Archive table corruption crashing MariaDB signal 11" · e1f6da82
    Michael Widenius authored
    Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
    Change ha_archive::unpack_row() to detect wrong field lengths.
    Replication code changed to detect wrong field information in events.
    
    
    mysql-test/r/archive.result:
      dded test case for lp:917689
    sql/field.cc:
      Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
      Removed not used 'unpack_key' functions.
    sql/field.h:
      Added 'from_end' as extra parameter to Field::unpack() to detect wrong from data.
      Removed not used 'unpack_key' functions.
      Removed some not needed unpack() functions.
    sql/filesort.cc:
      Added buffer end parameter to unpack_addon_fields()
    sql/log_event.h:
      Added end of buffer argument to unpack_row()
    sql/log_event_old.cc:
      Added end of buffer argument to unpack_row()
    sql/log_event_old.h:
      Added end of buffer argument to unpack_row()
    sql/records.cc:
      Added buffer end parameter to unpack_addon_fields()
    sql/rpl_record.cc:
      Added end of buffer argument to unpack_row()
      Added detection of wrong field information in events
    sql/rpl_record.h:
      Added end of buffer argument to unpack_row()
    sql/rpl_record_old.cc:
      Added end of buffer argument to unpack_row()
      Added detection of wrong field information in events
    sql/rpl_record_old.h:
      Added end of buffer argument to unpack_row()
    sql/table.h:
      Added buffer end parameter to unpack()
    storage/archive/ha_archive.cc:
      Change ha_archive::unpack_row() to detect wrong field lengths.
      This fixes lp:917689
    e1f6da82
rpl_record.cc 12.6 KB