diff options
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/charset.c | 8 | ||||
-rw-r--r-- | mysys/default.c | 2 | ||||
-rw-r--r-- | mysys/my_alloc.c | 4 | ||||
-rw-r--r-- | mysys/my_copy.c | 7 | ||||
-rw-r--r-- | mysys/my_thr_init.c | 5 |
5 files changed, 18 insertions, 8 deletions
diff --git a/mysys/charset.c b/mysys/charset.c index 9fb02f1a39f..cce97677b14 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -388,7 +388,7 @@ my_bool STDCALL init_available_charsets(myf myflags) static my_bool init_available_charsets(myf myflags) #endif { - char fname[FN_REFLEN]; + char fname[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; my_bool error=FALSE; /* We have to use charset_initialized to not lock on THR_LOCK_charset @@ -519,7 +519,7 @@ CHARSET_INFO *get_charset(uint cs_number, myf flags) if (!cs && (flags & MY_WME)) { - char index_file[FN_REFLEN], cs_string[23]; + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)], cs_string[23]; strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX); cs_string[0]='#'; int10_to_str(cs_number, cs_string+1, 10); @@ -539,7 +539,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags) if (!cs && (flags & MY_WME)) { - char index_file[FN_REFLEN]; + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX); my_error(EE_UNKNOWN_COLLATION, MYF(ME_BELL), cs_name, index_file); } @@ -564,7 +564,7 @@ CHARSET_INFO *get_charset_by_csname(const char *cs_name, if (!cs && (flags & MY_WME)) { - char index_file[FN_REFLEN]; + char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX); my_error(EE_UNKNOWN_CHARSET, MYF(ME_BELL), cs_name, index_file); } diff --git a/mysys/default.c b/mysys/default.c index 0cb6225ad7a..926a8f530bf 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -885,8 +885,8 @@ void my_print_default_files(const char *conf_file) fputs(name,stdout); } } - puts(""); } + puts(""); } void print_defaults(const char *conf_file, const char **groups) diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c index edf1be1b2b6..b4ebaeba647 100644 --- a/mysys/my_alloc.c +++ b/mysys/my_alloc.c @@ -133,6 +133,10 @@ void reset_root_defaults(MEM_ROOT *mem_root, uint block_size, mem->next= *prev; *prev= mem_root->pre_alloc= mem; } + else + { + mem_root->pre_alloc= 0; + } } } else diff --git a/mysys/my_copy.c b/mysys/my_copy.c index 80a68f61b12..3f8b0695a25 100644 --- a/mysys/my_copy.c +++ b/mysys/my_copy.c @@ -110,6 +110,11 @@ int my_copy(const char *from, const char *to, myf MyFlags) err: if (from_file >= 0) VOID(my_close(from_file,MyFlags)); - if (to_file >= 0) VOID(my_close(to_file,MyFlags)); + if (to_file >= 0) + { + VOID(my_close(to_file, MyFlags)); + /* attempt to delete the to-file we've partially written */ + VOID(my_delete(to, MyFlags)); + } DBUG_RETURN(-1); } /* my_copy */ diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index 75da07390ba..79a28ef04b0 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -79,11 +79,12 @@ static uint get_thread_lib(void); my_bool my_thread_global_init(void) { + int pth_ret; thd_lib_detected= get_thread_lib(); - if (pthread_key_create(&THR_KEY_mysys,0)) + if ((pth_ret= pthread_key_create(&THR_KEY_mysys, NULL)) != 0) { - fprintf(stderr,"Can't initialize threads: error %d\n",errno); + fprintf(stderr,"Can't initialize threads: error %d\n", pth_ret); return 1; } |