diff --git a/sql/mysqld.cc b/sql/mysqld.cc index ab7a3198f68..4a75c8452e9 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4974,11 +4974,11 @@ inline void kill_broken_server() #if !defined(__NETWARE__) unix_sock == INVALID_SOCKET || #endif - (!opt_disable_networking && - (base_ip_sock == INVALID_SOCKET || extra_ip_sock != INVALID_SOCKET))) + (!opt_disable_networking && ip_sock == INVALID_SOCKET)) { select_thread_in_use = 0; /* The following call will never return */ + DBUG_PRINT("general", ("killing server because socket is closed")); kill_server(IF_NETWARE(MYSQL_KILL_SIGNAL, (void*) MYSQL_KILL_SIGNAL)); } } diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 34b310931d6..4b2450c0093 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -65,10 +65,10 @@ bool String::real_alloc(uint32 arg_length) bool String::realloc(uint32 alloc_length) { - uint32 len=ALIGN_SIZE(alloc_length+1); - if (Alloced_length < len) + if (Alloced_length <= alloc_length) { char *new_ptr; + uint32 len= ALIGN_SIZE(alloc_length+1); if (alloced) { if ((new_ptr= (char*) my_realloc(Ptr,len,MYF(MY_WME)))) diff --git a/sql/strfunc.cc b/sql/strfunc.cc index c03365cfc2b..d6f9784e4ad 100644 --- a/sql/strfunc.cc +++ b/sql/strfunc.cc @@ -38,7 +38,8 @@ static const char field_separator=','; -ulonglong find_set(TYPELIB *lib, const char *str, uint length, CHARSET_INFO *cs, +ulonglong find_set(TYPELIB *lib, const char *str, uint length, + CHARSET_INFO *cs, char **err_pos, uint *err_len, bool *set_warning) { CHARSET_INFO *strip= cs ? cs : &my_charset_latin1;