Commit 61ae9288 authored by Davi Arnaut's avatar Davi Arnaut

Manual merge.

parents f8152464 06a1df91
...@@ -808,7 +808,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -808,7 +808,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
&err_ptr, &err_len); &err_ptr, &err_len);
if (err_len) if (err_len)
{ {
strmake(buff, err_ptr, min(sizeof(buff), err_len)); strmake(buff, err_ptr, min(sizeof(buff) - 1, err_len));
fprintf(stderr, "Invalid mode to --compatible: %s\n", buff); fprintf(stderr, "Invalid mode to --compatible: %s\n", buff);
exit(1); exit(1);
} }
...@@ -4486,7 +4486,7 @@ static ulong find_set(TYPELIB *lib, const char *x, uint length, ...@@ -4486,7 +4486,7 @@ static ulong find_set(TYPELIB *lib, const char *x, uint length,
for (; pos != end && *pos != ','; pos++) ; for (; pos != end && *pos != ','; pos++) ;
var_len= (uint) (pos - start); var_len= (uint) (pos - start);
strmake(buff, start, min(sizeof(buff), var_len)); strmake(buff, start, min(sizeof(buff) - 1, var_len));
find= find_type(buff, lib, var_len); find= find_type(buff, lib, var_len);
if (!find) if (!find)
{ {
......
...@@ -718,7 +718,10 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, ...@@ -718,7 +718,10 @@ my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
if (!passwd) if (!passwd)
passwd=""; passwd="";
/* Store user into the buffer */ /*
Store user into the buffer.
Advance position as strmake returns a pointer to the closing NUL.
*/
end= strmake(end, user, USERNAME_LENGTH) + 1; end= strmake(end, user, USERNAME_LENGTH) + 1;
/* write scrambled password according to server capabilities */ /* write scrambled password according to server capabilities */
...@@ -1268,7 +1271,7 @@ mysql_list_fields(MYSQL *mysql, const char *table, const char *wild) ...@@ -1268,7 +1271,7 @@ mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
{ {
MYSQL_RES *result; MYSQL_RES *result;
MYSQL_FIELD *fields; MYSQL_FIELD *fields;
char buff[257],*end; char buff[258],*end;
DBUG_ENTER("mysql_list_fields"); DBUG_ENTER("mysql_list_fields");
DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : "")); DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : ""));
......
...@@ -650,7 +650,7 @@ static int search_default_file_with_ext(Process_option_func opt_handler, ...@@ -650,7 +650,7 @@ static int search_default_file_with_ext(Process_option_func opt_handler,
int recursion_level) int recursion_level)
{ {
char name[FN_REFLEN + 10], buff[4096], curr_gr[4096], *ptr, *end, **tmp_ext; char name[FN_REFLEN + 10], buff[4096], curr_gr[4096], *ptr, *end, **tmp_ext;
char *value, option[4096], tmp[FN_REFLEN]; char *value, option[4096+2], tmp[FN_REFLEN];
static const char includedir_keyword[]= "includedir"; static const char includedir_keyword[]= "includedir";
static const char include_keyword[]= "include"; static const char include_keyword[]= "include";
const int max_recursion_level= 10; const int max_recursion_level= 10;
......
...@@ -245,7 +245,7 @@ my_bool my_use_symdir=0; /* Set this if you want to use symdirs */ ...@@ -245,7 +245,7 @@ my_bool my_use_symdir=0; /* Set this if you want to use symdirs */
#ifdef USE_SYMDIR #ifdef USE_SYMDIR
void symdirget(char *dir) void symdirget(char *dir)
{ {
char buff[FN_REFLEN]; char buff[FN_REFLEN+1];
char *pos=strend(dir); char *pos=strend(dir);
if (dir[0] && pos[-1] != FN_DEVCHAR && my_access(dir, F_OK)) if (dir[0] && pos[-1] != FN_DEVCHAR && my_access(dir, F_OK))
{ {
...@@ -257,7 +257,7 @@ void symdirget(char *dir) ...@@ -257,7 +257,7 @@ void symdirget(char *dir)
*pos++=temp; *pos=0; /* Restore old filename */ *pos++=temp; *pos=0; /* Restore old filename */
if (file >= 0) if (file >= 0)
{ {
if ((length= my_read(file, buff, sizeof(buff), MYF(0))) > 0) if ((length= my_read(file, buff, sizeof(buff) - 1, MYF(0))) > 0)
{ {
for (pos= buff + length ; for (pos= buff + length ;
pos > buff && (iscntrl(pos[-1]) || isspace(pos[-1])) ; pos > buff && (iscntrl(pos[-1]) || isspace(pos[-1])) ;
......
...@@ -272,7 +272,7 @@ create_unix_socket(struct sockaddr_un &unix_socket_address) ...@@ -272,7 +272,7 @@ create_unix_socket(struct sockaddr_un &unix_socket_address)
unix_socket_address.sun_family= AF_UNIX; unix_socket_address.sun_family= AF_UNIX;
strmake(unix_socket_address.sun_path, Options::Main::socket_file_name, strmake(unix_socket_address.sun_path, Options::Main::socket_file_name,
sizeof(unix_socket_address.sun_path)); sizeof(unix_socket_address.sun_path) - 1);
unlink(unix_socket_address.sun_path); // in case we have stale socket file unlink(unix_socket_address.sun_path); // in case we have stale socket file
/* /*
......
...@@ -2420,7 +2420,7 @@ const char *MYSQL_LOG::generate_name(const char *log_name, ...@@ -2420,7 +2420,7 @@ const char *MYSQL_LOG::generate_name(const char *log_name,
{ {
char *p= fn_ext(log_name); char *p= fn_ext(log_name);
uint length= (uint) (p - log_name); uint length= (uint) (p - log_name);
strmake(buff, log_name, min(length, FN_REFLEN)); strmake(buff, log_name, min(length, FN_REFLEN-1));
return (const char*)buff; return (const char*)buff;
} }
return log_name; return log_name;
...@@ -3669,7 +3669,7 @@ int MYSQL_BIN_LOG::purge_logs_before_date(time_t purge_time) ...@@ -3669,7 +3669,7 @@ int MYSQL_BIN_LOG::purge_logs_before_date(time_t purge_time)
if (stat_area.st_mtime < purge_time) if (stat_area.st_mtime < purge_time)
strmake(to_log, strmake(to_log,
log_info.log_file_name, log_info.log_file_name,
sizeof(log_info.log_file_name)); sizeof(log_info.log_file_name) - 1);
else else
break; break;
} }
...@@ -5021,11 +5021,11 @@ bool flush_error_log() ...@@ -5021,11 +5021,11 @@ bool flush_error_log()
if (opt_error_log) if (opt_error_log)
{ {
char err_renamed[FN_REFLEN], *end; char err_renamed[FN_REFLEN], *end;
end= strmake(err_renamed,log_error_file,FN_REFLEN-4); end= strmake(err_renamed,log_error_file,FN_REFLEN-5);
strmov(end, "-old"); strmov(end, "-old");
VOID(pthread_mutex_lock(&LOCK_error_log)); VOID(pthread_mutex_lock(&LOCK_error_log));
#ifdef __WIN__ #ifdef __WIN__
char err_temp[FN_REFLEN+4]; char err_temp[FN_REFLEN+5];
/* /*
On Windows is necessary a temporary file for to rename On Windows is necessary a temporary file for to rename
the current error file. the current error file.
......
...@@ -71,7 +71,7 @@ typedef struct sp_label ...@@ -71,7 +71,7 @@ typedef struct sp_label
typedef struct sp_cond_type typedef struct sp_cond_type
{ {
enum { number, state, warning, notfound, exception } type; enum { number, state, warning, notfound, exception } type;
char sqlstate[6]; char sqlstate[SQLSTATE_LENGTH+1];
uint mysqlerr; uint mysqlerr;
} sp_cond_type_t; } sp_cond_type_t;
......
...@@ -1061,7 +1061,7 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh, ...@@ -1061,7 +1061,7 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh,
*mqh= acl_user->user_resource; *mqh= acl_user->user_resource;
if (acl_user->host.hostname) if (acl_user->host.hostname)
strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME); strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME - 1);
else else
*sctx->priv_host= 0; *sctx->priv_host= 0;
} }
...@@ -1162,7 +1162,7 @@ bool acl_getroot_no_password(Security_context *sctx, char *user, char *host, ...@@ -1162,7 +1162,7 @@ bool acl_getroot_no_password(Security_context *sctx, char *user, char *host,
sctx->priv_user= acl_user->user ? user : (char *) ""; sctx->priv_user= acl_user->user ? user : (char *) "";
if (acl_user->host.hostname) if (acl_user->host.hostname)
strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME); strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME - 1);
else else
*sctx->priv_host= 0; *sctx->priv_host= 0;
} }
......
...@@ -705,7 +705,7 @@ static int check_connection(THD *thd) ...@@ -705,7 +705,7 @@ static int check_connection(THD *thd)
ulong server_capabilites; ulong server_capabilites;
{ {
/* buff[] needs to big enough to hold the server_version variable */ /* buff[] needs to big enough to hold the server_version variable */
char buff[SERVER_VERSION_LENGTH + SCRAMBLE_LENGTH + 64]; char buff[SERVER_VERSION_LENGTH + 1 + SCRAMBLE_LENGTH + 1 + 64];
server_capabilites= CLIENT_BASIC_FLAGS; server_capabilites= CLIENT_BASIC_FLAGS;
if (opt_using_transactions) if (opt_using_transactions)
......
...@@ -2575,7 +2575,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, ...@@ -2575,7 +2575,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
!(sql_field->charset= get_charset_by_csname(sql_field->charset->csname, !(sql_field->charset= get_charset_by_csname(sql_field->charset->csname,
MY_CS_BINSORT,MYF(0)))) MY_CS_BINSORT,MYF(0))))
{ {
char tmp[64]; char tmp[65];
strmake(strmake(tmp, save_cs->csname, sizeof(tmp)-4), strmake(strmake(tmp, save_cs->csname, sizeof(tmp)-4),
STRING_WITH_LEN("_bin")); STRING_WITH_LEN("_bin"));
my_error(ER_UNKNOWN_COLLATION, MYF(0), tmp); my_error(ER_UNKNOWN_COLLATION, MYF(0), tmp);
......
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