diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2020-01-24 13:46:49 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2020-01-24 13:46:49 +0100 |
commit | f2ccfcaca191513d12f50672ae4545f9738670f0 (patch) | |
tree | b72f61d8ae7904020d97eb76fb7b7680883d323e /sql | |
parent | ac3e3e12adad505b9f09bd068ddd6819ac084a05 (diff) | |
parent | 599a06098b967db3d636c1053bdbdd0011cba606 (diff) | |
download | mariadb-git-f2ccfcaca191513d12f50672ae4545f9738670f0.tar.gz |
Merge branch '10.1' into 10.2
Diffstat (limited to 'sql')
-rw-r--r-- | sql/log_event.cc | 9 | ||||
-rw-r--r-- | sql/log_event.h | 10 | ||||
-rw-r--r-- | sql/wsrep_mysqld.cc | 6 |
3 files changed, 22 insertions, 3 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index 1778cfbcda5..d5066fdabdf 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -6731,7 +6731,7 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len, { DBUG_ENTER("Load_log_event::copy_log_event"); uint data_len; - if ((int) event_len < body_offset) + if ((int) event_len <= body_offset) DBUG_RETURN(1); char* buf_end = (char*)buf + event_len; /* this is the beginning of the post-header */ @@ -10373,6 +10373,12 @@ Rows_log_event::Rows_log_event(const char *buf, uint event_len, uint8 const post_header_len= description_event->post_header_len[event_type-1]; + if (event_len < (uint)(common_header_len + post_header_len)) + { + m_cols.bitmap= 0; + DBUG_VOID_RETURN; + } + DBUG_PRINT("enter",("event_len: %u common_header_len: %d " "post_header_len: %d", event_len, common_header_len, @@ -11994,6 +12000,7 @@ Table_map_log_event::Table_map_log_event(const char *buf, uint event_len, const char *post_start= buf + common_header_len; post_start+= TM_MAPID_OFFSET; + VALIDATE_BYTES_READ(post_start, buf, event_len); if (post_header_len == 6) { /* Master is of an intermediate source tree before 5.1.4. Id is 4 bytes */ diff --git a/sql/log_event.h b/sql/log_event.h index 368d9616daf..863d81c047a 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -2193,7 +2193,15 @@ public: ****************************************************************************/ struct sql_ex_info { - sql_ex_info() {} /* Remove gcc warning */ + sql_ex_info(): + cached_new_format(-1), + field_term_len(0), + enclosed_len(0), + line_term_len(0), + line_start_len(0), + escaped_len(0), + empty_flags(0) + {} /* Remove gcc warning */ const char* field_term; const char* enclosed; const char* line_term; diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index cfcc04bff2c..ba6c2d24f77 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -628,7 +628,6 @@ int wsrep_init() { // enable normal operation in case no provider is specified wsrep_ready_set(TRUE); - wsrep_inited= 1; global_system_variables.wsrep_on = 0; wsrep_init_args args; args.logger_cb = wsrep_log_cb; @@ -639,10 +638,15 @@ int wsrep_init() { DBUG_PRINT("wsrep",("wsrep::init() failed: %d", rcode)); WSREP_ERROR("wsrep::init() failed: %d, must shutdown", rcode); + wsrep_ready_set(FALSE); wsrep->free(wsrep); free(wsrep); wsrep = NULL; } + else + { + wsrep_inited= 1; + } return rcode; } else |