summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-02-20 00:26:05 +0200
committerunknown <monty@mysql.com>2004-02-20 00:26:05 +0200
commit51a6b4f47ad03031105b0f8ac810d522a804695e (patch)
treebfdcdd3080ed1dd1bb67455ac9ab2043d09050c0
parent403255b887483d73bbefa5506bcbb008136809c3 (diff)
downloadmariadb-git-51a6b4f47ad03031105b0f8ac810d522a804695e.tar.gz
Safety fixes (strnmov -> strmake)
sql/mysqld.cc: Safety fix sql/set_var.cc: Safety fix sql/sql_db.cc: indentation cleanup
-rw-r--r--sql/mysqld.cc8
-rw-r--r--sql/set_var.cc10
-rw-r--r--sql/sql_db.cc13
3 files changed, 18 insertions, 13 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 3daa0d7990a..af61d624464 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -5619,7 +5619,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
fprintf(stderr, "Invalid ft-boolean-syntax string: %s\n", argument);
exit(1);
}
- strnmov(opt_ft_boolean_syntax, argument, sizeof(ft_boolean_syntax));
+ strmake(opt_ft_boolean_syntax, argument, sizeof(ft_boolean_syntax)-1);
break;
case OPT_SKIP_SAFEMALLOC:
#ifdef SAFEMALLOC
@@ -5668,7 +5668,8 @@ static void get_options(int argc,char **argv)
int ho_error;
my_getopt_register_get_addr(mysql_getopt_value);
- strnmov(opt_ft_boolean_syntax, ft_boolean_syntax, sizeof(ft_boolean_syntax));
+ strmake(opt_ft_boolean_syntax, ft_boolean_syntax,
+ sizeof(ft_boolean_syntax)-1);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
exit(ho_error);
if (argc > 0)
@@ -5724,7 +5725,8 @@ static void get_options(int argc,char **argv)
table_alias_charset= (lower_case_table_names ?
files_charset_info :
&my_charset_bin);
- strnmov(ft_boolean_syntax, opt_ft_boolean_syntax, sizeof(ft_boolean_syntax));
+ strmake(ft_boolean_syntax, opt_ft_boolean_syntax,
+ sizeof(ft_boolean_syntax)-1);
if (opt_short_log_format)
opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 975d7da1753..f3728ce9e5d 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -860,8 +860,8 @@ static void sys_default_init_slave(THD* thd, enum_var_type type)
static int sys_check_ftb_syntax(THD *thd, set_var *var)
{
if (thd->master_access & SUPER_ACL)
- return ft_boolean_check_syntax_string(var->value->str_value.ptr()) ?
- -1 : 0;
+ return ft_boolean_check_syntax_string(var->value->str_value.c_ptr()) ?
+ -1 : 0;
else
{
my_error(ER_SPECIFIC_ACCESS_DENIED_ERROR, MYF(0), "SUPER");
@@ -871,13 +871,15 @@ static int sys_check_ftb_syntax(THD *thd, set_var *var)
static bool sys_update_ftb_syntax(THD *thd, set_var * var)
{
- strnmov(ft_boolean_syntax, var->value->str_value.ptr(), sizeof(ft_boolean_syntax));
+ strmake(ft_boolean_syntax, var->value->str_value.c_ptr(),
+ sizeof(ft_boolean_syntax)-1);
return 0;
}
static void sys_default_ftb_syntax(THD *thd, enum_var_type type)
{
- strnmov(ft_boolean_syntax, opt_ft_boolean_syntax, sizeof(ft_boolean_syntax));
+ strmake(ft_boolean_syntax, opt_ft_boolean_syntax,
+ sizeof(ft_boolean_syntax)-1);
}
/*
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 0323e90a166..7bf1268597b 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -58,9 +58,9 @@ static bool write_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create)
if ((file=my_create(path, CREATE_MODE,O_RDWR | O_TRUNC,MYF(MY_WME))) >= 0)
{
ulong length;
- CHARSET_INFO *cs= (create && create->default_table_charset) ?
- create->default_table_charset :
- thd->variables.collation_server;
+ CHARSET_INFO *cs= ((create && create->default_table_charset) ?
+ create->default_table_charset :
+ thd->variables.collation_server);
length= my_sprintf(buf,(buf,
"default-character-set=%s\ndefault-collation=%s\n",
cs->csname,cs->name));
@@ -116,9 +116,10 @@ bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create)
{
if (!strncmp(buf,"default-character-set", (pos-buf)))
{
- if (!(create->default_table_charset= get_charset_by_csname(pos+1,
- MY_CS_PRIMARY,
- MYF(0))))
+ if (!(create->default_table_charset=
+ get_charset_by_csname(pos+1,
+ MY_CS_PRIMARY,
+ MYF(0))))
{
sql_print_error(ER(ER_UNKNOWN_CHARACTER_SET),pos+1);
}