1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-14372: Fix and enable rocksdb.information_schema test

- Make Rdb_binlog_manager::unpack_value to not have a stack overrun
  when it is reading invalid data (which it currently does as we in
  MariaDB do not store binlog coordinates under BINLOG_INFO_INDEX_NUMBER,
  see comments in MDEV-14892 for details).
- We may need to store these coordinates in the future, so instead of
  removing the call of this function, let's make it work properly for
  all possible inputs.
This commit is contained in:
Sergei Petrunia
2018-01-12 15:11:56 +03:00
parent bf7719111f
commit d32f5be307
7 changed files with 56 additions and 22 deletions

View File

@@ -46,6 +46,8 @@ class Rdb_field_packing;
class Rdb_cf_manager;
class Rdb_ddl_manager;
const uint32_t GTID_BUF_LEN = 60;
/*
@brief
Field packing context.
@@ -1154,7 +1156,8 @@ private:
rocksdb::Slice pack_value(uchar *const buf, const char *const binlog_name,
const my_off_t &binlog_pos,
const char *const binlog_gtid) const;
bool unpack_value(const uchar *const value, char *const binlog_name,
bool unpack_value(const uchar *const value, size_t value_size,
char *const binlog_name,
my_off_t *const binlog_pos, char *const binlog_gtid) const;
std::atomic<Rdb_tbl_def *> m_slave_gtid_info_tbl;