mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
make my_vsnprintf() work with oversized strings
fixed replication bug - flush_master_info() needs to be called every time we read an event from master this is will not be pushed yet mysys/my_vsnprintf.c: make my_vsnprintf() work with oversized strings corrected Swedish "skipp" in the comments sql/log.cc: wrong change - to be undone sql/slave.cc: fixed bug - flush_master_info() needs to be called every time we read an event from master
This commit is contained in:
parent
c4ab3fc0f1
commit
3b38d3d57a
3 changed files with 9 additions and 8 deletions
|
@ -39,7 +39,7 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
|
|||
*to++= *fmt; /* Copy ordinary char */
|
||||
continue;
|
||||
}
|
||||
/* Skipp if max size is used (to be compatible with printf) */
|
||||
/* Skip if max size is used (to be compatible with printf) */
|
||||
fmt++;
|
||||
while (isdigit(*fmt) || *fmt == '.' || *fmt == '-')
|
||||
fmt++;
|
||||
|
@ -48,14 +48,13 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
|
|||
if (*fmt == 's') /* String parameter */
|
||||
{
|
||||
reg2 char *par = va_arg(ap, char *);
|
||||
uint plen;
|
||||
uint plen,left_len = (uint)(end-to);
|
||||
if (!par) par = (char*)"(null)";
|
||||
plen = (uint) strlen(par);
|
||||
if ((uint) (end-to) > plen) /* Replace if possible */
|
||||
{
|
||||
to=strmov(to,par);
|
||||
continue;
|
||||
}
|
||||
if (left_len <= plen)
|
||||
plen = left_len - 1;
|
||||
to=strmov(to,par);
|
||||
continue;
|
||||
}
|
||||
else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */
|
||||
{
|
||||
|
|
|
@ -237,7 +237,8 @@ void MYSQL_LOG::open(const char *log_name, enum_log_type log_type_arg,
|
|||
/*
|
||||
Explanation of the boolean black magic:
|
||||
if we are supposed to write magic number try write
|
||||
clean up if failed
|
||||
clean
|
||||
up if failed
|
||||
then if index_file has not been previously opened, try to open it
|
||||
clean up if failed
|
||||
*/
|
||||
|
|
|
@ -1762,6 +1762,7 @@ reconnect done to recover from failed read");
|
|||
from master");
|
||||
goto err;
|
||||
}
|
||||
flush_master_info(mi);
|
||||
// TODO: check debugging abort code
|
||||
#ifndef DBUG_OFF
|
||||
if (abort_slave_event_count && !--events_till_abort)
|
||||
|
|
Loading…
Reference in a new issue