diff --git a/mysys/default.c b/mysys/default.c index 6352cc18d56..0f33c94d17e 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -513,15 +513,16 @@ static int search_default_file_with_ext(Process_option_func opt_handler, /* trim trailing whitespace from directory name */ end= ptr + strlen(ptr) - 1; - /* - This would work fine even if no whitespaces are met - since fgets() stores the newline character in the buffer - */ - for (; my_isspace(&my_charset_latin1, *(end - 1)); end--) - {} - end[0]= 0; + /* fgets() stores the newline character in the buffer */ + if ((end[0] == '\n') || (end[0] == '\r') || + my_isspace(&my_charset_latin1, end[0])) + { + for (; my_isspace(&my_charset_latin1, *(end - 1)); end--) + {} + end[0]= 0; + } - /* print error msg if there is nothing after !inludedir directive */ + /* print error msg if there is nothing after !includedir directive */ if (end == ptr) { fprintf(stderr, @@ -539,7 +540,7 @@ static int search_default_file_with_ext(Process_option_func opt_handler, search_file= search_dir->dir_entry + i; ext= fn_ext(search_file->name); - /* check extenstion */ + /* check extension */ for (tmp_ext= (char**) f_extensions; *tmp_ext; *tmp_ext++) { if (!strcmp(ext, *tmp_ext)) @@ -587,6 +588,14 @@ static int search_default_file_with_ext(Process_option_func opt_handler, continue; } + else + if (recursion_level >= max_recursion_level) + { + fprintf(stderr, + "warning: skipping !include directive as maximum include" + "recursion level was reached in file %s at line %d\n", + name, line); + } if (*ptr == '[') /* Group name */ { diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 3132e6c4c76..eed515b30d2 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -6136,7 +6136,8 @@ ha_innobase::store_lock( (lock_type == TL_READ_HIGH_PRIORITY && thd->in_lock_tables) || lock_type == TL_READ_WITH_SHARED_LOCKS || lock_type == TL_READ_NO_INSERT || - thd->lex->sql_command != SQLCOM_SELECT) { + (thd->lex->sql_command != SQLCOM_SELECT + && lock_type != TL_IGNORE)) { /* The OR cases above are in this order: 1) MySQL is doing LOCK TABLES ... READ LOCAL, or