Commit d10e839a authored by Libing Song's avatar Libing Song

Auto Merge

parents d1923690 e7e9fa59
......@@ -4307,7 +4307,6 @@ Format_description_log_event::do_shall_skip(Relay_log_info *rli)
into 'server_version_split':
X.Y.Zabc (X,Y,Z numbers, a not a digit) -> {X,Y,Z}
X.Yabc -> {X,Y,0}
Xabc -> {X,0,0}
'server_version_split' is then used for lookups to find if the server which
created this event has some known bug.
*/
......@@ -4318,10 +4317,21 @@ void Format_description_log_event::calc_server_version_split()
for (uint i= 0; i<=2; i++)
{
number= strtoul(p, &r, 10);
server_version_split[i]= (uchar)number;
DBUG_ASSERT(number < 256); // fit in uchar
/*
It is an invalid version if any version number greater than 255 or
first number is not followed by '.'.
*/
if (number < 256 && (*r == '.' || i != 0))
server_version_split[i]= (uchar)number;
else
{
server_version_split[0]= 0;
server_version_split[1]= 0;
server_version_split[2]= 0;
break;
}
p= r;
DBUG_ASSERT(!((i == 0) && (*r != '.'))); // should be true in practice
if (*r == '.')
p++; // skip the dot
}
......
......@@ -1021,7 +1021,7 @@ public:
return thd ? thd->db : 0;
}
#else
Log_event() : temp_buf(0) {}
Log_event() : temp_buf(0), flags(0) {}
/* avoid having to link mysqlbinlog against libpthread */
static Log_event* read_log_event(IO_CACHE* file,
const Format_description_log_event
......@@ -2320,12 +2320,26 @@ public:
#ifdef MYSQL_SERVER
bool write(IO_CACHE* file);
#endif
bool is_valid() const
bool header_is_valid() const
{
return ((common_header_len >= ((binlog_version==1) ? OLD_HEADER_LEN :
LOG_EVENT_MINIMAL_HEADER_LEN)) &&
(post_header_len != NULL));
}
bool version_is_valid() const
{
/* It is invalid only when all version numbers are 0 */
return !(server_version_split[0] == 0 &&
server_version_split[1] == 0 &&
server_version_split[2] == 0);
}
bool is_valid() const
{
return header_is_valid() && version_is_valid();
}
int get_data_size()
{
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment