Loading sql/log.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1290,7 +1290,7 @@ void MYSQL_LOG::make_log_name(char* buf, const char* log_ident) if (dir_len > FN_REFLEN) dir_len=FN_REFLEN-1; strnmov(buf, log_file_name, dir_len); strmake(buf+dir_len, log_ident, FN_REFLEN - dir_len); strmake(buf+dir_len, log_ident, FN_REFLEN - dir_len -1); } Loading sql/repl_failsafe.cc +1 −1 Original line number Diff line number Diff line Loading @@ -922,7 +922,7 @@ bool load_master_data(THD* thd) 0, (SLAVE_IO | SLAVE_SQL))) my_message(ER_MASTER_INFO, ER(ER_MASTER_INFO), MYF(0)); strmake(active_mi->master_log_name, row[0], sizeof(active_mi->master_log_name)); sizeof(active_mi->master_log_name) -1); active_mi->master_log_pos= my_strtoll10(row[1], (char**) 0, &error_2); /* at least in recent versions, the condition below should be false */ if (active_mi->master_log_pos < BIN_LOG_HEADER_SIZE) Loading sql/set_var.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1752,7 +1752,7 @@ bool sys_var::check_set(THD *thd, set_var *var, TYPELIB *enum_names) ¬_used)); if (error_len) { strmake(buff, error, min(sizeof(buff), error_len)); strmake(buff, error, min(sizeof(buff) - 1, error_len)); goto err; } } Loading sql/unireg.cc +3 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,9 @@ bool mysql_create_frm(THD *thd, my_string file_name, strmake((char*) forminfo+47, create_info->comment.str ? create_info->comment.str : "", create_info->comment.length); forminfo[46]=(uchar) create_info->comment.length; #ifdef EXTRA_DEBUG memset((char*) forminfo+47 + forminfo[46], 0, 61 - forminfo[46]); #endif if (my_pwrite(file,(byte*) fileinfo,64,0L,MYF_RW) || my_pwrite(file,(byte*) keybuff,key_info_length, (ulong) uint2korr(fileinfo+6),MYF_RW)) Loading strings/strmake.c +16 −14 Original line number Diff line number Diff line Loading @@ -27,23 +27,25 @@ #include <my_global.h> #include "m_string.h" #ifdef BAD_STRING_COMPILER char *strmake(char *dst,const char *src,uint length) char *strmake(register char *dst, register const char *src, uint length) { reg1 char *res; if ((res=memccpy(dst,src,0,length))) return res-1; dst[length]=0; return dst+length; } #define strmake strmake_overlapp /* Use orginal for overlapping str */ #ifdef EXTRA_DEBUG /* 'length' is the maximum length of the string; the buffer needs to be one character larger to accomodate the terminating '\0'. This is easy to get wrong, so we make sure we write to the entire length of the buffer to identify incorrect buffer-sizes. We only initialise the "unused" part of the buffer here, a) for efficiency, and b) because dst==src is allowed, so initialising the entire buffer would overwrite the source-string. Also, we write a character rather than '\0' as this makes spotting these problems in the results easier. */ uint n= strlen(src) + 1; if (n <= length) memset(dst + n, (int) 'Z', length - n + 1); #endif char *strmake(register char *dst, register const char *src, uint length) { while (length--) if (! (*dst++ = *src++)) return dst-1; Loading Loading
sql/log.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1290,7 +1290,7 @@ void MYSQL_LOG::make_log_name(char* buf, const char* log_ident) if (dir_len > FN_REFLEN) dir_len=FN_REFLEN-1; strnmov(buf, log_file_name, dir_len); strmake(buf+dir_len, log_ident, FN_REFLEN - dir_len); strmake(buf+dir_len, log_ident, FN_REFLEN - dir_len -1); } Loading
sql/repl_failsafe.cc +1 −1 Original line number Diff line number Diff line Loading @@ -922,7 +922,7 @@ bool load_master_data(THD* thd) 0, (SLAVE_IO | SLAVE_SQL))) my_message(ER_MASTER_INFO, ER(ER_MASTER_INFO), MYF(0)); strmake(active_mi->master_log_name, row[0], sizeof(active_mi->master_log_name)); sizeof(active_mi->master_log_name) -1); active_mi->master_log_pos= my_strtoll10(row[1], (char**) 0, &error_2); /* at least in recent versions, the condition below should be false */ if (active_mi->master_log_pos < BIN_LOG_HEADER_SIZE) Loading
sql/set_var.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1752,7 +1752,7 @@ bool sys_var::check_set(THD *thd, set_var *var, TYPELIB *enum_names) ¬_used)); if (error_len) { strmake(buff, error, min(sizeof(buff), error_len)); strmake(buff, error, min(sizeof(buff) - 1, error_len)); goto err; } } Loading
sql/unireg.cc +3 −0 Original line number Diff line number Diff line Loading @@ -165,6 +165,9 @@ bool mysql_create_frm(THD *thd, my_string file_name, strmake((char*) forminfo+47, create_info->comment.str ? create_info->comment.str : "", create_info->comment.length); forminfo[46]=(uchar) create_info->comment.length; #ifdef EXTRA_DEBUG memset((char*) forminfo+47 + forminfo[46], 0, 61 - forminfo[46]); #endif if (my_pwrite(file,(byte*) fileinfo,64,0L,MYF_RW) || my_pwrite(file,(byte*) keybuff,key_info_length, (ulong) uint2korr(fileinfo+6),MYF_RW)) Loading
strings/strmake.c +16 −14 Original line number Diff line number Diff line Loading @@ -27,23 +27,25 @@ #include <my_global.h> #include "m_string.h" #ifdef BAD_STRING_COMPILER char *strmake(char *dst,const char *src,uint length) char *strmake(register char *dst, register const char *src, uint length) { reg1 char *res; if ((res=memccpy(dst,src,0,length))) return res-1; dst[length]=0; return dst+length; } #define strmake strmake_overlapp /* Use orginal for overlapping str */ #ifdef EXTRA_DEBUG /* 'length' is the maximum length of the string; the buffer needs to be one character larger to accomodate the terminating '\0'. This is easy to get wrong, so we make sure we write to the entire length of the buffer to identify incorrect buffer-sizes. We only initialise the "unused" part of the buffer here, a) for efficiency, and b) because dst==src is allowed, so initialising the entire buffer would overwrite the source-string. Also, we write a character rather than '\0' as this makes spotting these problems in the results easier. */ uint n= strlen(src) + 1; if (n <= length) memset(dst + n, (int) 'Z', length - n + 1); #endif char *strmake(register char *dst, register const char *src, uint length) { while (length--) if (! (*dst++ = *src++)) return dst-1; Loading