null+****@clear*****
null+****@clear*****
2011年 11月 1日 (火) 00:37:35 JST
Kouhei Sutou 2011-10-31 15:37:35 +0000 (Mon, 31 Oct 2011) New Revision: 334588480212f8e6840bd1e03910fa07376c7658 Log: allocate default_parser memory in mrn_init() with my_malloc(). Modified files: ha_mroonga.cc Modified: ha_mroonga.cc (+5 -4) =================================================================== --- ha_mroonga.cc 2011-10-31 14:56:15 +0000 (0525209) +++ ha_mroonga.cc 2011-10-31 15:37:35 +0000 (9fab20b) @@ -109,7 +109,6 @@ FILE *mrn_logfile = NULL; static bool mrn_logfile_opened = false; grn_log_level mrn_log_level_default = GRN_LOG_DEFAULT_LEVEL; ulong mrn_log_level = (ulong) mrn_log_level_default; -char mrn_default_parser_name[MRN_MAX_KEY_SIZE]; char *mrn_default_parser; static void mrn_logger_func(int level, const char *time, const char *title, @@ -228,13 +227,12 @@ static void mrn_default_parser_update(THD *thd, struct st_mysql_sys_var *var, "default parser changed from '%s' to '%s'", old_value, new_value); grn_ctx_fin(&ctx); - strcpy(mrn_default_parser_name, new_value); - mrn_default_parser = mrn_default_parser_name; + strncpy(mrn_default_parser, new_value, MRN_MAX_KEY_SIZE - 1); DBUG_VOID_RETURN; } static MYSQL_SYSVAR_STR(default_parser, mrn_default_parser, - PLUGIN_VAR_RQCMDARG, + PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC, "default fulltext parser", NULL, mrn_default_parser_update, @@ -1010,6 +1008,9 @@ static int mrn_init(void *p) goto error_allocated_open_tables_hash_init; } + mrn_default_parser = (char *)my_malloc(MRN_MAX_KEY_SIZE, MYF(MY_WME)); + strncpy(mrn_default_parser, MRN_PARSER_DEFAULT, MRN_MAX_KEY_SIZE - 1); + return 0; error_allocated_open_tables_hash_init: