BUG 38718: automerged bzr bundle from bug report into
latest mysql-5.1-bugteam.
This commit is contained in:
commit
0e5d43cd81
@ -1230,7 +1230,7 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
|
|||||||
break;
|
break;
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
case SLAVE_EVENT: /* can never happen (unused event) */
|
case SLAVE_EVENT: /* can never happen (unused event) */
|
||||||
ev = new Slave_log_event(buf, event_len);
|
ev = new Slave_log_event(buf, event_len, description_event);
|
||||||
break;
|
break;
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
case CREATE_FILE_EVENT:
|
case CREATE_FILE_EVENT:
|
||||||
@ -1318,8 +1318,10 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
|
|||||||
(because constructor is "void") ; so instead we leave the pointer we
|
(because constructor is "void") ; so instead we leave the pointer we
|
||||||
wanted to allocate (e.g. 'query') to 0 and we test it in is_valid().
|
wanted to allocate (e.g. 'query') to 0 and we test it in is_valid().
|
||||||
Same for Format_description_log_event, member 'post_header_len'.
|
Same for Format_description_log_event, member 'post_header_len'.
|
||||||
|
|
||||||
|
SLAVE_EVENT is never used, so it should not be read ever.
|
||||||
*/
|
*/
|
||||||
if (!ev || !ev->is_valid())
|
if (!ev || !ev->is_valid() || (event_type == SLAVE_EVENT))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error",("Found invalid event in binary log"));
|
DBUG_PRINT("error",("Found invalid event in binary log"));
|
||||||
|
|
||||||
@ -5983,8 +5985,12 @@ void Slave_log_event::init_from_mem_pool(int data_size)
|
|||||||
|
|
||||||
|
|
||||||
/** This code is not used, so has not been updated to be format-tolerant. */
|
/** This code is not used, so has not been updated to be format-tolerant. */
|
||||||
Slave_log_event::Slave_log_event(const char* buf, uint event_len)
|
/* We are using description_event so that slave does not crash on Log_event
|
||||||
:Log_event(buf,0) /*unused event*/ ,mem_pool(0),master_host(0)
|
constructor */
|
||||||
|
Slave_log_event::Slave_log_event(const char* buf,
|
||||||
|
uint event_len,
|
||||||
|
const Format_description_log_event* description_event)
|
||||||
|
:Log_event(buf,description_event),mem_pool(0),master_host(0)
|
||||||
{
|
{
|
||||||
if (event_len < LOG_EVENT_HEADER_LEN)
|
if (event_len < LOG_EVENT_HEADER_LEN)
|
||||||
return;
|
return;
|
||||||
|
@ -1782,7 +1782,9 @@ public:
|
|||||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Slave_log_event(const char* buf, uint event_len);
|
Slave_log_event(const char* buf,
|
||||||
|
uint event_len,
|
||||||
|
const Format_description_log_event *description_event);
|
||||||
~Slave_log_event();
|
~Slave_log_event();
|
||||||
int get_data_size();
|
int get_data_size();
|
||||||
bool is_valid() const { return master_host != 0; }
|
bool is_valid() const { return master_host != 0; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user