[Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (monty:2768) Bug#48357
#At lp:maria based on revid:monty@askmonty.org-20091125231823-ausq10s23qyih61x 2768 Michael Widenius 2009-11-26 Fix for Bug #48357 SHOW BINLOG EVENTS: Wrong offset or I/O error modified: sql/log_event.cc per-file messages: sql/log_event.cc gcc 4.4.1 assumes that variables that you cast away will not change (strict-aliasing) The symptom was that mysql-test-run binlog.binglog_database got errors in the log === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2009-10-15 21:38:29 +0000 +++ b/sql/log_event.cc 2009-11-26 15:57:05 +0000 @@ -2133,7 +2133,7 @@ void Query_log_event::pack_info(Protocol /** Utility function for the next method (Query_log_event::write()) . */ -static void write_str_with_code_and_len(char **dst, const char *src, +static void write_str_with_code_and_len(uchar **dst, const char *src, int len, uint code) { /* @@ -2143,7 +2143,7 @@ static void write_str_with_code_and_len( DBUG_ASSERT(len <= 255); DBUG_ASSERT(src); *((*dst)++)= code; - *((*dst)++)= (uchar) len; + *((*dst)++)= len; bmove(*dst, src, len); (*dst)+= len; } @@ -2229,7 +2229,7 @@ bool Query_log_event::write(IO_CACHE* fi } if (catalog_len) // i.e. this var is inited (false for 4.0 events) { - write_str_with_code_and_len((char **)(&start), + write_str_with_code_and_len(&start, catalog, catalog_len, Q_CATALOG_NZ_CODE); /* In 5.0.x where x<4 masters we used to store the end zero here. This was @@ -2267,7 +2267,7 @@ bool Query_log_event::write(IO_CACHE* fi { /* In the TZ sys table, column Name is of length 64 so this should be ok */ DBUG_ASSERT(time_zone_len <= MAX_TIME_ZONE_NAME_LENGTH); - write_str_with_code_and_len((char **)(&start), + write_str_with_code_and_len(&start, time_zone_str, time_zone_len, Q_TIME_ZONE_CODE); } if (lc_time_names_number)
participants (1)
-
Michael Widenius