diff --git a/.bzrignore b/.bzrignore index 334cd021c95d9..b590f940463d7 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1436,7 +1436,7 @@ storage/tokudb/ft-index/portability/tests/try-uninit storage/tokudb/ft-index/src/merge_archives_tokufractaltree_static.cmake storage/tokudb/ft-index/src/tokufractaltree_static_depends.cc storage/tokudb/ft-index/src/tests/recovery_fileops_unit_dir -storage/tokudb/ft-index/toku_include/toku_config.h +storage/tokudb/ft-index/portability/toku_config.h storage/tokudb/ft-index/util/tests/marked-omt-test storage/tokudb/ft-index/util/tests/omt-tmpl-test storage/tokudb/ft-index/util/tests/sort-tmpl-test @@ -1450,9 +1450,10 @@ storage/tokudb/ft-index/util/tests/test_partitioned_counter storage/tokudb/ft-index/util/tests/test_partitioned_counter_5833 storage/tokudb/ft-index/util/tests/threadpool-test storage/tokudb/ft-index/util/tests/threadpool-testrunf -storage/tokudb/ft-index/utils/tokudb_dump -storage/tokudb/ft-index/utils/tokudb_gen -storage/tokudb/ft-index/utils/tokudb_load +storage/tokudb/ft-index/tools/tokudb_dump +storage/tokudb/ft-index/tools/tokudb_gen +storage/tokudb/ft-index/tools/tokudb_load storage/connect/connect.cnf storage/cassandra/cassandra.cnf libmysql/libmysql_versions.ld +scripts/mysql_config.pl diff --git a/BUILD/cleanup b/BUILD/cleanup index e8397ca9663cf..1a3cfa7b24ef6 100755 --- a/BUILD/cleanup +++ b/BUILD/cleanup @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2003 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-alpha b/BUILD/compile-alpha index 5e05748d17835..45f72eb90e1ef 100755 --- a/BUILD/compile-alpha +++ b/BUILD/compile-alpha @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2000, 2002 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-amd64-debug-max-no-ndb b/BUILD/compile-amd64-debug-max-no-ndb index 5b928886f7ab5..100a17163a4aa 100755 --- a/BUILD/compile-amd64-debug-max-no-ndb +++ b/BUILD/compile-amd64-debug-max-no-ndb @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2005, 2006 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; version 2 diff --git a/BUILD/compile-amd64-gcov b/BUILD/compile-amd64-gcov index 8f718b509aa8b..80936d1f3ec0d 100755 --- a/BUILD/compile-amd64-gcov +++ b/BUILD/compile-amd64-gcov @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-amd64-gprof b/BUILD/compile-amd64-gprof index a5c5ce0e7d8d2..b6e38a68b8f56 100755 --- a/BUILD/compile-amd64-gprof +++ b/BUILD/compile-amd64-gprof @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-amd64-max-sci b/BUILD/compile-amd64-max-sci index 76a0257959ff9..fbcbba7920b7f 100644 --- a/BUILD/compile-amd64-max-sci +++ b/BUILD/compile-amd64-max-sci @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-cybozu b/BUILD/compile-pentium-cybozu index 0e07e553a6313..fc65adf1ea1d0 100755 --- a/BUILD/compile-pentium-cybozu +++ b/BUILD/compile-pentium-cybozu @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2005 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov index 33f74d01db0d0..56072f619e51b 100755 --- a/BUILD/compile-pentium-gcov +++ b/BUILD/compile-pentium-gcov @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2000, 2007 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-gprof b/BUILD/compile-pentium-gprof index 0f02aa4f23688..52231e7832ae5 100755 --- a/BUILD/compile-pentium-gprof +++ b/BUILD/compile-pentium-gprof @@ -1,7 +1,7 @@ #! /bin/sh # Copyright (C) 2001, 2007 MySQL AB -# +# Use is subject to license terms # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-icc b/BUILD/compile-pentium-icc index a94f4b6287866..23333a13c1523 100755 --- a/BUILD/compile-pentium-icc +++ b/BUILD/compile-pentium-icc @@ -1,7 +1,8 @@ #! /bin/sh # Copyright (C) 2005 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-icc-yassl b/BUILD/compile-pentium-icc-yassl index 256aefdcaacdc..ef0ec1a5d76e1 100644 --- a/BUILD/compile-pentium-icc-yassl +++ b/BUILD/compile-pentium-icc-yassl @@ -1,7 +1,8 @@ #! /bin/sh # Copyright (C) 2005 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium-myodbc b/BUILD/compile-pentium-myodbc index 36add93d2df7f..d9b1dd4712922 100755 --- a/BUILD/compile-pentium-myodbc +++ b/BUILD/compile-pentium-myodbc @@ -1,7 +1,8 @@ #! /bin/sh # Copyright (C) 2000 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-pentium64-gcov b/BUILD/compile-pentium64-gcov index e7f1742f8aae2..36d4b6192ecbe 100755 --- a/BUILD/compile-pentium64-gcov +++ b/BUILD/compile-pentium64-gcov @@ -1,6 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium64-gprof b/BUILD/compile-pentium64-gprof index ba077c6a671d1..b7821e06b6efb 100755 --- a/BUILD/compile-pentium64-gprof +++ b/BUILD/compile-pentium64-gprof @@ -1,6 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium64-max b/BUILD/compile-pentium64-max index e4f3179d531d1..7f63d408f1aa0 100755 --- a/BUILD/compile-pentium64-max +++ b/BUILD/compile-pentium64-max @@ -1,6 +1,7 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/BUILD/compile-pentium64-max-sci b/BUILD/compile-pentium64-max-sci index 0e6db7d84c654..a19351308c559 100644 --- a/BUILD/compile-pentium64-max-sci +++ b/BUILD/compile-pentium64-max-sci @@ -1,7 +1,8 @@ #! /bin/sh # Copyright (C) 2007 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-ppc b/BUILD/compile-ppc index a8e2d838a19e2..18051aa33ee51 100755 --- a/BUILD/compile-ppc +++ b/BUILD/compile-ppc @@ -1,7 +1,8 @@ #! /bin/sh # Copyright (C) 2004 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/BUILD/compile-solaris-amd64-debug b/BUILD/compile-solaris-amd64-debug index d0f05579dc491..49e1e90ebeb4c 100755 --- a/BUILD/compile-solaris-amd64-debug +++ b/BUILD/compile-solaris-amd64-debug @@ -1,7 +1,8 @@ #!/bin/sh # Copyright (C) 2007 MySQL AB -# +# Use is subject to license terms +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/CMakeLists.txt b/CMakeLists.txt index 6059e58868c3c..882cc4d9a54fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -# Copyright (c) 2006, 2013, Oracle and/or its affiliates. -# Copyright (c) 2008, 2013, Monty Program Ab +# Copyright (c) 2006, 2014, Oracle and/or its affiliates. +# Copyright (c) 2008, 2014, Monty Program Ab # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -331,14 +331,15 @@ IF(INSTALL_SYSCONFDIR) SET(DEFAULT_SYSCONFDIR "${INSTALL_SYSCONFDIR}") ENDIF() -OPTION(TMPDIR -"PATH to MySQL TMP dir. If unspecified, defaults to P_tmpdir in " OFF) -IF(TMPDIR) +SET(TMPDIR "" + CACHE PATH + "PATH to MySQL TMP dir. Defaults to the P_tmpdir macro in ") +IF(TMPDIR STREQUAL "") + # Do not quote it, to refer to the P_tmpdir macro. + SET(DEFAULT_TMPDIR "P_tmpdir") +ELSE() # Quote it, to make it a const char string. SET(DEFAULT_TMPDIR "\"${TMPDIR}\"") -ELSE() - # Do not quote it, to refer to the P_tmpdir macro in . - SET(DEFAULT_TMPDIR "P_tmpdir") ENDIF() # Run platform tests @@ -387,11 +388,13 @@ IF(WITH_UNIT_TESTS) ADD_SUBDIRECTORY(unittest/examples) ADD_SUBDIRECTORY(unittest/mysys) ADD_SUBDIRECTORY(unittest/my_decimal) - ADD_SUBDIRECTORY(unittest/sql) + IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(unittest/sql) + ENDIF() ENDIF() IF(NOT WITHOUT_SERVER) -SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") + SET (MYSQLD_STATIC_PLUGIN_LIBS "" CACHE INTERNAL "") # Add storage engines and plugins. CONFIGURE_PLUGINS() ENDIF() diff --git a/client/mysql.cc b/client/mysql.cc index 22d9d84d58298..b1570e32a80f7 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2013, Oracle and/or its affiliates. + Copyright (c) 2000, 2014, Oracle and/or its affiliates. Copyright (c) 2009, 2013, Monty Program Ab. Copyright (c) 2013, 2014, SkySQL Ab diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index ec49134a1112d..80d57ce9faa27 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -500,6 +500,7 @@ static void find_tool(char *tool_executable_name, const char *tool_name, */ if (run_tool(tool_executable_name, &ds_tmp, /* Get output from command, discard*/ + "--no-defaults", "--help", "2>&1", IF_WIN("> NUL", "> /dev/null"), diff --git a/client/mysqldump.c b/client/mysqldump.c index b3a679261d759..cb4fa022d4f19 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -604,12 +604,12 @@ static void print_version(void) } /* print_version */ -static void short_usage_sub(void) +static void short_usage_sub(FILE *f) { - printf("Usage: %s [OPTIONS] database [tables]\n", my_progname_short); - printf("OR %s [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]\n", - my_progname_short); - printf("OR %s [OPTIONS] --all-databases [OPTIONS]\n", my_progname_short); + fprintf(f, "Usage: %s [OPTIONS] database [tables]\n", my_progname_short); + fprintf(f, "OR %s [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]\n", + my_progname_short); + fprintf(f, "OR %s [OPTIONS] --all-databases [OPTIONS]\n", my_progname_short); } @@ -618,18 +618,18 @@ static void usage(void) print_version(); puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000")); puts("Dumping structure and contents of MySQL databases and tables."); - short_usage_sub(); + short_usage_sub(stdout); print_defaults("my",load_default_groups); puts(""); -my_print_help(my_long_options); + my_print_help(my_long_options); my_print_variables(my_long_options); } /* usage */ -static void short_usage(void) +static void short_usage(FILE *f) { - short_usage_sub(); - printf("For more options, use %s --help\n", my_progname_short); + short_usage_sub(f); + fprintf(f, "For more options, use %s --help\n", my_progname_short); } @@ -1002,7 +1002,7 @@ static int get_options(int *argc, char ***argv) exit(1); if ((*argc < 1 && !opt_alldbs) || (*argc > 0 && opt_alldbs)) { - short_usage(); + short_usage(stderr); return EX_USAGE; } if (tty_password) @@ -1502,12 +1502,13 @@ static void free_resources() static void maybe_exit(int error) { - if (opt_slave_data) - do_start_slave_sql(mysql); if (!first_error) first_error= error; if (ignore_errors) return; + ignore_errors= 1; /* don't want to recurse, if something fails below */ + if (opt_slave_data) + do_start_slave_sql(mysql); if (mysql) mysql_close(mysql); free_resources(); @@ -5799,8 +5800,8 @@ int main(int argc, char **argv) */ err: /* if --dump-slave , start the slave sql thread */ - if (opt_slave_data && do_start_slave_sql(mysql)) - goto err; + if (opt_slave_data) + do_start_slave_sql(mysql); #ifdef HAVE_SMEM my_free(shared_memory_base_name); diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 91bc531b2aeb0..efece866ef598 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -837,6 +837,8 @@ static void handle_no_active_connection(struct st_command* command, #define EMB_SEND_QUERY 1 #define EMB_READ_QUERY_RESULT 2 #define EMB_END_CONNECTION 3 +#define EMB_PREPARE_STMT 4 +#define EMB_EXECUTE_STMT 5 /* workaround for MySQL BUG#57491 */ #undef MY_WME @@ -872,11 +874,19 @@ pthread_handler_t connection_thread(void *arg) case EMB_END_CONNECTION: goto end_thread; case EMB_SEND_QUERY: - cn->result= mysql_send_query(cn->mysql, cn->cur_query, cn->cur_query_len); + cn->result= mysql_send_query(cn->mysql, + cn->cur_query, cn->cur_query_len); break; case EMB_READ_QUERY_RESULT: cn->result= mysql_read_query_result(cn->mysql); break; + case EMB_PREPARE_STMT: + cn->result= mysql_stmt_prepare(cn->stmt, + cn->cur_query, cn->cur_query_len); + break; + case EMB_EXECUTE_STMT: + cn->result= mysql_stmt_execute(cn->stmt); + break; default: DBUG_ASSERT(0); } @@ -946,6 +956,30 @@ static int do_read_query_result(struct st_connection *cn) } +static int do_stmt_prepare(struct st_connection *cn, const char *q, int q_len) +{ + /* The cn->stmt is already set. */ + if (!cn->has_thread) + return mysql_stmt_prepare(cn->stmt, q, q_len); + cn->cur_query= q; + cn->cur_query_len= q_len; + signal_connection_thd(cn, EMB_PREPARE_STMT); + wait_query_thread_done(cn); + return cn->result; +} + + +static int do_stmt_execute(struct st_connection *cn) +{ + /* The cn->stmt is already set. */ + if (!cn->has_thread) + return mysql_stmt_execute(cn->stmt); + signal_connection_thd(cn, EMB_EXECUTE_STMT); + wait_query_thread_done(cn); + return cn->result; +} + + static void emb_close_connection(struct st_connection *cn) { if (!cn->has_thread) @@ -979,6 +1013,8 @@ static void init_connection_thd(struct st_connection *cn) #define init_connection_thd(X) do { } while(0) #define do_send_query(cn,q,q_len) mysql_send_query(cn->mysql, q, q_len) #define do_read_query_result(cn) mysql_read_query_result(cn->mysql) +#define do_stmt_prepare(cn, q, q_len) mysql_stmt_prepare(cn->stmt, q, q_len) +#define do_stmt_execute(cn) mysql_stmt_execute(cn->stmt) #endif /*EMBEDDED_LIBRARY*/ @@ -8078,11 +8114,12 @@ void handle_no_error(struct st_command *command) error - function will not return */ -void run_query_stmt(MYSQL *mysql, struct st_command *command, +void run_query_stmt(struct st_connection *cn, struct st_command *command, char *query, int query_len, DYNAMIC_STRING *ds, DYNAMIC_STRING *ds_warnings) { MYSQL_RES *res= NULL; /* Note that here 'res' is meta data result set */ + MYSQL *mysql= cn->mysql; MYSQL_STMT *stmt; DYNAMIC_STRING ds_prepare_warnings; DYNAMIC_STRING ds_execute_warnings; @@ -8092,11 +8129,11 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command, /* Init a new stmt if it's not already one created for this connection */ - if(!(stmt= cur_con->stmt)) + if(!(stmt= cn->stmt)) { if (!(stmt= mysql_stmt_init(mysql))) die("unable to init stmt structure"); - cur_con->stmt= stmt; + cn->stmt= stmt; } /* Init dynamic strings for warnings */ @@ -8109,7 +8146,7 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command, /* Prepare the query */ - if (mysql_stmt_prepare(stmt, query, query_len)) + if (do_stmt_prepare(cn, query, query_len)) { handle_error(command, mysql_stmt_errno(stmt), mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds); @@ -8144,7 +8181,7 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command, /* Execute the query */ - if (mysql_stmt_execute(stmt)) + if (do_stmt_execute(cn)) { handle_error(command, mysql_stmt_errno(stmt), mysql_stmt_error(stmt), mysql_stmt_sqlstate(stmt), ds); @@ -8279,7 +8316,7 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command, if (mysql->reconnect) { mysql_stmt_close(stmt); - cur_con->stmt= NULL; + cn->stmt= NULL; } DBUG_VOID_RETURN; @@ -8536,7 +8573,7 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags) if (ps_protocol_enabled && complete_query && match_re(&ps_re, query)) - run_query_stmt(mysql, command, query, query_len, ds, &ds_warnings); + run_query_stmt(cn, command, query, query_len, ds, &ds_warnings); else run_query_normal(cn, command, flags, query, query_len, ds, &ds_warnings); diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake index 368946a387b4c..85ec0480a40a5 100644 --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake @@ -155,9 +155,6 @@ IF(UNIX) # libmysqld.so will depend on libaio.so #SET(LIBMYSQLD_SO_EXTRA_LIBS aio) ENDIF() - - # Enable fast mutexes on Linux - OPTION(WITH_FAST_MUTEXES "" ON) ENDIF() ENDIF() diff --git a/cmake/cpack_rpm.cmake b/cmake/cpack_rpm.cmake index 03c6a03a3ed50..3092412052677 100644 --- a/cmake/cpack_rpm.cmake +++ b/cmake/cpack_rpm.cmake @@ -147,6 +147,10 @@ SETA(CPACK_RPM_test_PACKAGE_OBSOLETES SETA(CPACK_RPM_test_PACKAGE_PROVIDES "MySQL-test") +SETA(CPACK_RPM_server_PACKAGE_REQUIRES + ${CPACK_RPM_PACKAGE_REQUIRES} + "MariaDB-client") + SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh) SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh) SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh) @@ -166,13 +170,13 @@ MACRO(ALTERNATIVE_NAME real alt) SET(${o} "${${o}} ${alt} ${alt}%{_isa}") ENDMACRO(ALTERNATIVE_NAME) -# Argh! Different distributions call packages differently, to be a drop-in -# replacement we have to fake distribution-speficic dependencies - ALTERNATIVE_NAME("devel" "mysql-devel") ALTERNATIVE_NAME("server" "mysql-server") ALTERNATIVE_NAME("test" "mysql-test") +# Argh! Different distributions call packages differently, to be a drop-in +# replacement we have to fake distribution-speficic dependencies + IF(RPM MATCHES "(rhel|centos)5") ALTERNATIVE_NAME("shared" "mysql") ELSEIF(RPM MATCHES "(rhel|centos)6") diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake index 7feba109296a0..ee345b177bd6a 100644 --- a/cmake/install_macros.cmake +++ b/cmake/install_macros.cmake @@ -60,7 +60,11 @@ FUNCTION (INSTALL_DEBUG_SYMBOLS) IF(NOT comp) SET(comp Debuginfo_archive_only) # not in MSI ENDIF() - INSTALL(FILES ${pdb_location} DESTINATION ${ARG_INSTALL_LOCATION} COMPONENT ${comp}) + IF(type MATCHES "STATIC") + # PDB for static libraries might be unsupported http://public.kitware.com/Bug/view.php?id=14600 + SET(opt OPTIONAL) + ENDIF() + INSTALL(FILES ${pdb_location} DESTINATION ${ARG_INSTALL_LOCATION} COMPONENT ${comp} ${opt}) ENDFOREACH() ENDIF() ENDFUNCTION() @@ -384,19 +388,21 @@ FUNCTION(INSTALL_MYSQL_TEST from to) DESTINATION "${INSTALL_MYSQLTESTDIR}/${to}" USE_SOURCE_PERMISSIONS COMPONENT Test - PATTERN "var/" EXCLUDE + PATTERN "var" EXCLUDE PATTERN "lib/My/SafeProcess" EXCLUDE PATTERN "lib/t*" EXCLUDE PATTERN "CPack" EXCLUDE PATTERN "CMake*" EXCLUDE + PATTERN "cmake_install.cmake" EXCLUDE PATTERN "mtr.out*" EXCLUDE PATTERN ".cvsignore" EXCLUDE PATTERN "*.am" EXCLUDE PATTERN "*.in" EXCLUDE + PATTERN "Makefile" EXCLUDE PATTERN "*.vcxproj" EXCLUDE PATTERN "*.vcxproj.filters" EXCLUDE PATTERN "*.vcxproj.user" EXCLUDE - PATTERN "CTest" EXCLUDE + PATTERN "CTest*" EXCLUDE PATTERN "*~" EXCLUDE ) ENDIF() diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index 2da701d39b0a6..8f85b988f8d50 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -1,4 +1,4 @@ -# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2010, Oracle and/or its affiliates. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/cmake/mysql_version.cmake b/cmake/mysql_version.cmake index 2abff3dc63d82..f147f6ef2bfc5 100644 --- a/cmake/mysql_version.cmake +++ b/cmake/mysql_version.cmake @@ -1,4 +1,4 @@ -# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2012, Oracle and/or its affiliates. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/debian/dist/Debian/control b/debian/dist/Debian/control index 8114ee683ba16..e01350a14ebd6 100644 --- a/debian/dist/Debian/control +++ b/debian/dist/Debian/control @@ -122,7 +122,11 @@ Description: MariaDB database core client binaries Package: mariadb-client-10.0 Architecture: any -Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), mariadb-common, libmariadbclient18 (>= ${source:Version}), mariadb-client-core-10.0 (>= ${source:Version}), ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends} +Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), + mariadb-common, libmariadbclient18 (>= ${source:Version}), + mariadb-client-core-10.0 (>= ${source:Version}), ${perl:Depends}, + ${shlibs:Depends}, ${misc:Depends} +Suggests: libterm-readkey-perl Provides: virtual-mysql-client, mysql-client, mysql-client-4.1, mysql-client-5.1, mysql-client-5.5 Conflicts: mysql-client (<< 5.0.51), mysql-client-5.0, mysql-client-5.1, diff --git a/debian/dist/Ubuntu/control b/debian/dist/Ubuntu/control index 16236653509ec..b663c6e9cc9c2 100644 --- a/debian/dist/Ubuntu/control +++ b/debian/dist/Ubuntu/control @@ -122,7 +122,11 @@ Description: MariaDB database core client binaries Package: mariadb-client-10.0 Architecture: any -Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), mariadb-common, libmariadbclient18 (>= ${source:Version}), mariadb-client-core-10.0 (>= ${source:Version}), ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends} +Depends: debianutils (>=1.6), libdbi-perl, libdbd-mysql-perl (>= 1.2202), + mariadb-common, libmariadbclient18 (>= ${source:Version}), + mariadb-client-core-10.0 (>= ${source:Version}), ${perl:Depends}, + ${shlibs:Depends}, ${misc:Depends} +Suggests: libterm-readkey-perl Provides: virtual-mysql-client, mysql-client, mysql-client-4.1, mysql-client-5.1, mysql-client-5.5 Conflicts: mysql-client (<< 5.0.51), mysql-client-5.0, mysql-client-5.1, diff --git a/debian/patches/44_scripts__mysql_config__libs.dpatch b/debian/patches/44_scripts__mysql_config__libs.dpatch index a8569617dba6c..c06275fdef345 100755 --- a/debian/patches/44_scripts__mysql_config__libs.dpatch +++ b/debian/patches/44_scripts__mysql_config__libs.dpatch @@ -8,17 +8,17 @@ diff -Nur mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh --- mysql-dfsg-5.1-5.1.31.orig/scripts/mysql_config.sh 2009-01-19 17:30:55.000000000 +0100 +++ mysql-dfsg-5.1-5.1.31/scripts/mysql_config.sh 2009-02-08 17:17:48.000000000 +0100 -@@ -106,10 +106,10 @@ fi +@@ -106,10 +106,10 @@ # Create options # We intentionally add a space to the beginning and end of lib strings, simplifies replace later --libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@" -+libs=" $ldflags -L$pkglibdir -lmysqlclient" +-libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@" ++libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient" libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ " --libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @CLIENT_LIBS@ @openssl_libs@ " --embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @openssl_libs@ " -+libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @CLIENT_LIBS@ @openssl_libs@ " -+embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBDL@ @WRAPLIBS@ @openssl_libs@ " +-libs_r=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient_r @ZLIB_DEPS@ @CLIENT_LIBS@ @openssl_libs@ " +-embedded_libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqld @LIBDL@ @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @openssl_libs@ " ++libs_r=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqlclient_r @CLIENT_LIBS@ @openssl_libs@ " ++embedded_libs=" $ldflags -L$pkglibdir @RPATH_OPTION@ -lmysqld @LIBDL@ @WRAPLIBS@ @openssl_libs@ " if [ -r "$pkglibdir/libmygcc.a" ]; then # When linking against the static library with a different version of GCC diff --git a/extra/yassl/README b/extra/yassl/README index 24bdf32f989bc..2c144815f19db 100644 --- a/extra/yassl/README +++ b/extra/yassl/README @@ -12,7 +12,36 @@ before calling SSL_new(); *** end Note *** -yaSSL Release notes, version 2.2.2 (7/5/2012) +yaSSL Release notes, version 2.3.0 (12/5/2013) + + This release of yaSSL updates asm for newer GCC versions. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.3b (4/23/2013) + + This release of yaSSL updates the test certificates as they were expired + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.2d (2/5/2013) + + This release of yaSSL contains countermeasuers for the Lucky 13 TLS 1.1 + CBC timing padding attack identified by Nadhem AlFardan and Kenneth Paterson + see: http://www.isg.rhul.ac.uk/tls/ + + It also adds SHA2 certificate verification and better checks for malicious + input. + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0 and note in 1.5.8. + + +*****************yaSSL Release notes, version 2.2.2 (7/5/2012) This release of yaSSL contains bug fixes and more security checks around malicious certificates. diff --git a/extra/yassl/certs/ca-cert.pem b/extra/yassl/certs/ca-cert.pem index 6a0cf898e53aa..b2dc6ae6ee3fe 100644 --- a/extra/yassl/certs/ca-cert.pem +++ b/extra/yassl/certs/ca-cert.pem @@ -1,56 +1,87 @@ +-----BEGIN CERTIFICATE----- +MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD +VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G +A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3 +dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx +MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q +8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k +EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A +dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/ +mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ +CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O +BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd +P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u +dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV +BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG +9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513 +PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH +Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr +G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m +ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi +rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg== +-----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: - 8a:37:22:65:73:f5:aa:e8 - Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + e9:d0:a7:5f:79:25:f4:3c + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com Validity - Not Before: Jun 30 18:47:10 2010 GMT - Not After : Mar 26 18:47:10 2013 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + Not Before: Oct 24 18:18:15 2011 GMT + Not After : Jul 20 18:18:15 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public Key: (512 bit) - Modulus (512 bit): - 00:97:30:b9:1a:92:ef:25:4f:ca:4c:11:31:95:1a: - e1:c0:10:19:0a:20:b9:37:80:1a:57:38:02:4e:1b: - c5:0f:28:4f:da:e3:c9:16:aa:50:bd:4a:fb:b7:71: - c7:35:cc:63:81:c1:dd:9d:33:f9:38:16:88:32:a0: - aa:56:23:03:a3 + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: + f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: + de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: + 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: + 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: + 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: + a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: + a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: + 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: + 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: + 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: + 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: + de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: + cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: + b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: + 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: + ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: + 36:79 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: - 3B:66:FD:A0:40:C6:F4:E2:70:CF:21:1A:0C:4F:67:FE:B7:4B:42:09 + 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 X509v3 Authority Key Identifier: - keyid:3B:66:FD:A0:40:C6:F4:E2:70:CF:21:1A:0C:4F:67:FE:B7:4B:42:09 - DirName:/C=US/ST=Montana/L=Bozeman/O=sawtooth/OU=consulting/CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com - serial:8A:37:22:65:73:F5:AA:E8 + keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com + serial:E9:D0:A7:5F:79:25:F4:3C X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: md5WithRSAEncryption - 32:65:a2:b1:dc:6d:e0:8d:8b:c8:58:29:8e:b8:18:4b:62:88: - 13:67:f8:6c:75:46:75:8f:8a:19:a6:a3:d5:3c:fc:57:4e:7a: - 68:a9:fc:93:dc:ae:29:7d:bb:4e:ec:ea:55:fa:a4:e3:00:61: - f4:b0:34:6d:d1:d5:a4:64:24:f8 ------BEGIN CERTIFICATE----- -MIIDQDCCAuqgAwIBAgIJAIo3ImVz9aroMA0GCSqGSIb3DQEBBAUAMIGeMQswCQYD -VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G -A1UEChMIc2F3dG9vdGgxEzARBgNVBAsTCmNvbnN1bHRpbmcxJDAiBgNVBAMTG3d3 -dy5zYXd0b290aC1jb25zdWx0aW5nLmNvbTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5 -YXNzbC5jb20wHhcNMTAwNjMwMTg0NzEwWhcNMTMwMzI2MTg0NzEwWjCBnjELMAkG -A1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAP -BgNVBAoTCHNhd3Rvb3RoMRMwEQYDVQQLEwpjb25zdWx0aW5nMSQwIgYDVQQDExt3 -d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9A -eWFzc2wuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJcwuRqS7yVPykwRMZUa -4cAQGQoguTeAGlc4Ak4bxQ8oT9rjyRaqUL1K+7dxxzXMY4HB3Z0z+TgWiDKgqlYj -A6MCAwEAAaOCAQcwggEDMB0GA1UdDgQWBBQ7Zv2gQMb04nDPIRoMT2f+t0tCCTCB -0wYDVR0jBIHLMIHIgBQ7Zv2gQMb04nDPIRoMT2f+t0tCCaGBpKSBoTCBnjELMAkG -A1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAP -BgNVBAoTCHNhd3Rvb3RoMRMwEQYDVQQLEwpjb25zdWx0aW5nMSQwIgYDVQQDExt3 -d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9A -eWFzc2wuY29tggkAijciZXP1qugwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQF -AANBADJlorHcbeCNi8hYKY64GEtiiBNn+Gx1RnWPihmmo9U8/FdOemip/JPcril9 -u07s6lX6pOMAYfSwNG3R1aRkJPg= ------END CERTIFICATE----- + Signature Algorithm: sha1WithRSAEncryption + 5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26: + 4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6: + e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c: + f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e: + af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18: + 98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02: + 8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab: + 1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80: + 61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87: + 1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f: + 60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf: + 18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12: + f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4: + b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70: + 5a:1f:7f:ca diff --git a/extra/yassl/certs/ca-key.pem b/extra/yassl/certs/ca-key.pem index 45d7b149857da..774feba054868 100644 --- a/extra/yassl/certs/ca-key.pem +++ b/extra/yassl/certs/ca-key.pem @@ -1,9 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIBOQIBAAJBAJcwuRqS7yVPykwRMZUa4cAQGQoguTeAGlc4Ak4bxQ8oT9rjyRaq -UL1K+7dxxzXMY4HB3Z0z+TgWiDKgqlYjA6MCAwEAAQJAEQ9TY7c+uuQU/J5YDO4a -mRR37tegbq3Kyxqrz+p8QuhqLDtVh13GaF7rVU70vyNHm+cgihUyzho/PViAkPBo -qQIhAMU8/RDhDLgL5BxID4sxKIVBtg+imFSbyKVyg7oQLUcXAiEAxDu94O45Cf4a -np9R0thumY/QqWpCkycWAB7fFEuaf1UCIEH+bg4/vqm2ENUFp23DPPOZUPlaRe3J -UhFJh5mx3/RxAiBq++8vfHFYg1Lb/BxOCXVy/zdRxf753ytdcXdJx1Y56QIgVgpN -FNfYJofQfWaP96sjlc0usrT28uceHx0QmHqolVc= +MIIEpAIBAAKCAQEAvwzKLRSyHoRCW804H0ryTXUQ8bY1n9/KfQOY06zeA2buKvHY +sH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQu2lSEAMvqPOVxfGLYlYb72dvpBBB +la0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkcrMft8nyVsJWCfUlcOM13Je+9gHVT +lDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfaQG/YIdxzG0ItU5z+Gvx9q3o2P5je +hHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+jJtK3b7FaF9c4mQj+k1hv/sMTSQgW +C6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02eQIDAQABAoIBAD1uTmAahH+dhXzh +Swd84NaZKt6d+TY0DncOPgjqT+UGJtT2OPffDQ8cLgai9CponGNy4zXmBJGRtcGx +pFSs18b7QaDWdW+9C06/sVLoX0kmmFZHx97p6jxgAb8o3DG/SV+TSYd6gVuWS03K +XDhPt+Gy08ch2jwShwfkG9xD7OjsVGHn9u2mCy7134J/xh9hGZykgznfIYWJb3ev +hhUyCKJaCyZh+3AMypw4fbwi7uujqBYA+YqAHgCEqEpB+IQDZy8jWy+baybDBzSU +owM7ctWfcuCtzDSrvcfV9SYwhQ8wIzlS/zzLmSFNiKWr7mK5x+C7R4fBac9z8zC+ +zjkEnOUCgYEA4XZFgFm200nfCu8S1g/wt8sqN7+n+LVN9TE1reSjlKHb8ZattQVk +hYP8G1spqr74Jj92fq0c8MvXJrQbBY5Whn4IYiHBhtZHeT63XaTGOtexdCD2UJdB +BFPtPybWb5H6aCbsKtya8efc+3PweUMbIaNZBGNSB8nX5tEbXV6W+lMCgYEA2O1O +ZGFrkQxhAbUPu0RnUx7cB8Qkfp5shCORDOQSBBZNeJjMlj0gTg9Fmrb4s5MNsqIb +KfImecjF0nh+XnPy13Bhu0DOYQX+aR6CKeYUuKHnltAjPwWTAPLhTX7tt5Zs9/Dk +0c8BmE/cdFSqbV5aQTH+/5q2oAXdqRBU+GvQqoMCgYAh0wSKROtQt3xmv4cr5ihO +6oPi6TXh8hFH/6H1/J8t5TqB/AEDb1OtVCe2Uu7lVtETq+GzD3WQCoS0ocCMDNae +RrorPrUx7WO7pNUNj3LN0R4mNeu+G3L9mzm0h7cT9eqDRZOYuo/kSsy0TKh/CLpB +SahJKD1ePcHONwDL+SzdUQKBgQChV58+udavg22DP4/70NyozgMJI7GhG2PKxElW +NSvRLmVglQVVmRE1/dXfRMeliHJfsoJRqHFFkzbPXB9hUQwFgOivxXu6XiLjPHXD +hAVVbdY6LYSJkzPLONqqMQXNzmwt3VXTVwvwpTVqsK4xukOWygDHS+MZEkPTQvpv +6oDA0QKBgQC524kgNCdwYjTqXyViEvOdgb9I7poOwY0Q/2WanS0aipRayMClpYRh +ntQkue+pncl3C8dwZj26yFTf0jPh9X/5J2G+V0Xdt0UXJPUj5DgOkSfu4yDYFMiU +R3dAd0UYng3OeT9XMVYJSWe+lFhP9sSr4onj44rABVUsJMBKlwQnmg== -----END RSA PRIVATE KEY----- diff --git a/extra/yassl/certs/client-cert.pem b/extra/yassl/certs/client-cert.pem index 7acc9a850d517..278b43fe65c0c 100644 --- a/extra/yassl/certs/client-cert.pem +++ b/extra/yassl/certs/client-cert.pem @@ -2,54 +2,86 @@ Certificate: Data: Version: 3 (0x2) Serial Number: - c5:d7:6c:11:36:f0:35:e1 - Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=programming, CN=www.yassl.com/emailAddress=info@yassl.com + 87:4a:75:be:91:66:d8:3d + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=Programming, CN=www.yassl.com/emailAddress=info@yassl.com Validity - Not Before: Jun 30 18:39:39 2010 GMT - Not After : Mar 26 18:39:40 2013 GMT - Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=programming, CN=www.yassl.com/emailAddress=info@yassl.com + Not Before: Oct 24 18:21:55 2011 GMT + Not After : Jul 20 18:21:55 2014 GMT + Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=Programming, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public Key: (512 bit) - Modulus (512 bit): - 00:bd:51:4a:14:fd:6a:19:84:0c:33:38:fc:27:32: - 9c:97:0b:fc:a4:18:60:69:4e:d9:d8:78:50:0b:e9: - 20:5d:d6:1d:70:1c:0c:24:9f:23:82:cc:3a:01:d5: - 97:17:b2:73:6c:86:cf:b5:f1:e5:ce:68:0c:d9:a2: - 12:39:7c:f2:53 + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b: + 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07: + 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d: + 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b: + ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf: + 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5: + b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6: + 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b: + 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e: + bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14: + c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83: + ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19: + cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d: + 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9: + 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71: + d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86: + 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1: + ba:d3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: - 5C:F7:29:21:69:7A:09:78:9E:7B:CD:53:42:02:EC:CE:29:0D:11:DF + 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 X509v3 Authority Key Identifier: - keyid:5C:F7:29:21:69:7A:09:78:9E:7B:CD:53:42:02:EC:CE:29:0D:11:DF - DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=programming/CN=www.yassl.com/emailAddress=info@yassl.com - serial:C5:D7:6C:11:36:F0:35:E1 + keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0 + DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=Programming/CN=www.yassl.com/emailAddress=info@yassl.com + serial:87:4A:75:BE:91:66:D8:3D X509v3 Basic Constraints: CA:TRUE - Signature Algorithm: md5WithRSAEncryption - b4:a5:f1:71:26:4d:b9:ff:54:f3:09:1f:ac:e1:19:59:e5:ec: - 57:e3:f1:0b:b2:8f:f3:29:eb:6b:c6:fa:27:33:3e:91:d0:77: - 43:c9:ce:1e:0f:71:07:a9:f7:26:e0:7e:ff:30:7d:52:0a:e1: - 80:48:46:bb:99:e9:d9:77:ce:75 + Signature Algorithm: sha1WithRSAEncryption + 1c:7c:42:81:29:9e:21:cf:d0:d8:c1:54:6f:cc:ae:14:09:38: + ff:68:98:9a:95:53:76:18:7b:e6:30:76:ec:28:0d:75:a7:de: + e0:cd:8e:d5:55:23:6a:47:2b:4e:8d:fc:7d:06:a3:d8:0f:ad: + 5e:d6:04:c9:00:33:fb:77:27:d3:b5:03:b3:7b:21:74:31:0b: + 4a:af:2d:1a:b3:93:8e:cc:f3:5f:3d:90:3f:cc:e3:55:19:91: + 7b:78:24:2e:4a:09:bb:18:4e:61:2d:9c:c6:0a:a0:34:91:88: + 70:6b:3b:48:47:bc:79:94:a2:a0:4d:32:47:54:c2:a3:dc:2e: + d2:51:4c:29:39:11:ff:e2:15:5e:58:97:36:f6:e9:06:06:86: + 0e:8d:9d:95:03:72:b2:8b:19:7c:e9:14:6e:a1:88:73:68:58: + 6d:71:5e:c2:d5:d3:13:d2:5f:de:ea:03:be:e2:00:40:e5:ce: + fd:e6:92:31:57:c3:eb:bb:66:ac:cb:2f:1a:fa:e0:62:a2:47: + f4:93:43:2a:4b:6c:5e:0a:2f:f9:e7:e6:4a:63:86:b0:ac:2a: + a1:eb:b4:5b:67:cd:32:e4:b6:11:4b:9a:72:66:0d:a2:4a:76: + 8f:fe:22:bc:83:fd:db:b7:d5:a9:ee:05:c9:b1:71:7e:1b:2b: + e1:e3:af:c0 -----BEGIN CERTIFICATE----- -MIIDDjCCArigAwIBAgIJAMXXbBE28DXhMA0GCSqGSIb3DQEBBAUAMIGOMQswCQYD +MIIEmDCCA4CgAwIBAgIJAIdKdb6RZtg9MA0GCSqGSIb3DQEBBQUAMIGOMQswCQYD VQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwG -A1UEChMFeWFTU0wxFDASBgNVBAsTC3Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cu -eWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0xMDA2 -MzAxODM5MzlaFw0xMzAzMjYxODM5NDBaMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UE +A1UEChMFeWFTU0wxFDASBgNVBAsTC1Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cu +eWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0xMTEw +MjQxODIxNTVaFw0xNDA3MjAxODIxNTVaMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UE CBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwGA1UEChMFeWFTU0wxFDAS -BgNVBAsTC3Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJ -KoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC -QQC9UUoU/WoZhAwzOPwnMpyXC/ykGGBpTtnYeFAL6SBd1h1wHAwknyOCzDoB1ZcX -snNshs+18eXOaAzZohI5fPJTAgMBAAGjgfYwgfMwHQYDVR0OBBYEFFz3KSFpegl4 -nnvNU0IC7M4pDRHfMIHDBgNVHSMEgbswgbiAFFz3KSFpegl4nnvNU0IC7M4pDRHf -oYGUpIGRMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQH -EwhQb3J0bGFuZDEOMAwGA1UEChMFeWFTU0wxFDASBgNVBAsTC3Byb2dyYW1taW5n -MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlh -c3NsLmNvbYIJAMXXbBE28DXhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD -QQC0pfFxJk25/1TzCR+s4RlZ5exX4/ELso/zKetrxvonMz6R0HdDyc4eD3EHqfcm -4H7/MH1SCuGASEa7menZd851 +BgNVBAsTC1Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJ +KoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQrKnx0mr2qKlIHR9amNrIHMo7Quml7xsNE +ntSBSP0taKKLZ7uhdcg2LErSG/eLus8N+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvk +NPfFsBST9Wd7Onp44QFWVpGmE0KN0jxAnEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+ +v06X0BDoqAgwga8gC0MUxXRntDKCb42GwohAmTaDuh5AciIX11JlJHOwzu8Zza7/ +eGx7wBID1E5yDVBtO6M7o5lencjZDIWz2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOw +Y7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuhutMCAwEAAaOB9jCB8zAdBgNVHQ4EFgQU +M9hFZtdohxh+VA1wJ5HHJteFZcAwgcMGA1UdIwSBuzCBuIAUM9hFZtdohxh+VA1w +J5HHJteFZcChgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24x +ETAPBgNVBAcTCFBvcnRsYW5kMQ4wDAYDVQQKEwV5YVNTTDEUMBIGA1UECxMLUHJv +Z3JhbW1pbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEW +DmluZm9AeWFzc2wuY29tggkAh0p1vpFm2D0wDAYDVR0TBAUwAwEB/zANBgkqhkiG +9w0BAQUFAAOCAQEAHHxCgSmeIc/Q2MFUb8yuFAk4/2iYmpVTdhh75jB27CgNdafe +4M2O1VUjakcrTo38fQaj2A+tXtYEyQAz+3cn07UDs3shdDELSq8tGrOTjszzXz2Q +P8zjVRmRe3gkLkoJuxhOYS2cxgqgNJGIcGs7SEe8eZSioE0yR1TCo9wu0lFMKTkR +/+IVXliXNvbpBgaGDo2dlQNysosZfOkUbqGIc2hYbXFewtXTE9Jf3uoDvuIAQOXO +/eaSMVfD67tmrMsvGvrgYqJH9JNDKktsXgov+efmSmOGsKwqoeu0W2fNMuS2EUua +cmYNokp2j/4ivIP927fVqe4FybFxfhsr4eOvwA== -----END CERTIFICATE----- diff --git a/extra/yassl/certs/client-key.pem b/extra/yassl/certs/client-key.pem index 92c052fef84d8..c4e7ad22c095c 100644 --- a/extra/yassl/certs/client-key.pem +++ b/extra/yassl/certs/client-key.pem @@ -1,9 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIBPAIBAAJBAL1RShT9ahmEDDM4/CcynJcL/KQYYGlO2dh4UAvpIF3WHXAcDCSf -I4LMOgHVlxeyc2yGz7Xx5c5oDNmiEjl88lMCAwEAAQJAVGHWLlLhpqvXsEEXCvWh -HCYono+K8YVGzhiaPSTU212fCoQryIxsXQKGBjhFdZm96DZWp+Vd/t/u+B4ZeaqY -+QIhAOBEfbFtdZqk5OmbbRsRVPI7+YYmubgY1TVIPqmxHQ4NAiEA2BrTQkjOb3ul -A/SZO04fJUZsm7Ng92FWHDJsRancSd8CIQCmGbQqZBK1TamJZ6dAY+7RViAx/p6Q -vjuzMeXPUrFdRQIhAMkfBhg9bCqjFyt8PBPOm/vz8+ZgZlE0/JAXeV7IPCVfAiEA -gZwCFm1ghGxmaoB424YC4DHeDeN/g9xwJHT7EuM9Mvc= +MIIEpAIBAAKCAQEAwwPRK/45pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvG +w0Se1IFI/S1oootnu6F1yDYsStIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJ +W+Q098WwFJP1Z3s6enjhAVZWkaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbf +G36/TpfQEOioCDCBryALQxTFdGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnN +rv94bHvAEgPUTnINUG07ozujmV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAY +E7BjtXJOMMSXhIYtVi/XFfd/wK71/Fvl+6G60wIDAQABAoIBAQCi5thfEHFkCJ4u +bdFtHoXSCrGMR84sUWqgEp5T3pFMHW3qWXvyd6rZxtmKq9jhFuRjJv+1bBNZuOOl +yHIXLgyfb+VZP3ZvSbERwlouFikN3reO3EDVou7gHqH0vpfbhmOWFM2YCWAtMHac +PM3miO5HknkLWgDiXl8RfH35CLcgBokqXf0AqyLh8LO8JKleJg4fAC3+IZpTW23T +K6uUgmhDNtj2L8Yi/LVBXQ0zYOqkfX7oS1WRVtNcV48flBcvqt7pnqj0z4pMjqDk +VnOyz0+GxWk88yQgi1yWDPprEjuaZ8HfxpaypdWSDZsJQmgkEEXUUOQXOUjQNYuU +bRHej8pZAoGBAOokp/lpM+lx3FJ9iCEoL0neunIW6cxHeogNlFeEWBY6gbA/os+m +bB6wBikAj+d3dqzbysfZXps/JpBSrvw4kAAUu7QPWJTnL2p+HE9BIdQxWR9OihqN +p1dsItjl9H4yphDLZKVVA4emJwWMw9e2J7JNujDaR49U0z2LhI2UmFilAoGBANU4 +G8OPxZMMRwtvNZLFsI1GyJIYj/WACvfvof6AubUqusoYsF2lB9CTjdicBBzUYo6m +JoEB/86KKmM0NUCqbYDeiSNqV02ebq2TTlaQC22dc4sMric93k7wqsVseGdslFKc +N2dsLe+7r9+mkDzER8+Nlp6YqbSfxaZQ3LPw+3QXAoGAXoMJYr26fKK/QnT1fBzS +ackEDYV+Pj0kEsMYe/Mp818OdmxZdeRBhGmdMvPNIquwNbpKsjzl2Vi2Yk9d3uWe +CspTsiz3nrNrClt5ZexukU6SIPb8/Bbt03YM4ux/smkTa3gOWkZktF63JaBadTpL +78c8Pvf9JrggxJkKmnO+wxkCgYEAukSTFKw0GTtfkWCs97TWgQU2UVM96GXcry7c +YT7Jfbh/h/A7mwOCKTfOck4R1bHBDAegmZFKjX/sec/xObXphexi99p9vGRNIjwO +8tZR9YfYmcARIF0PKf1b4q7ZHNkhVm38hNBf7RAVHBgh58Q9S9fQnmqVzyLJA3ue +42AB/C8CgYAR0EvPG2e5nxB1R4ZlrjHCxjCsWQZQ2Q+1cAb38NPIYnyo2m72IT/T +f1/qiqs/2Spe81HSwjA34y2jdQ0eTSE01VdwXIm/cuxKbmjVzRh0M06MOkWP5pZA +62P5GYY6Ud2JS7Dz+Z9dKJU4vjWrylznk1M0oUVdEzllQkahn831vw== -----END RSA PRIVATE KEY----- diff --git a/extra/yassl/certs/client-keyEnc.pem b/extra/yassl/certs/client-keyEnc.pem index f6b857fc48ceb..6f29eac50c1fa 100644 --- a/extra/yassl/certs/client-keyEnc.pem +++ b/extra/yassl/certs/client-keyEnc.pem @@ -2,11 +2,29 @@ Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,B9D8FB94E38635AB -e7bVyzL1RF6p7hl8GDaOrRTcgB4ip+pWWUcnNf6y2tsuAQx/c/Bd5c9ZDc3L5AXC -oOAzWYB+ay1vWkmAQB4ivFS5QzGDf8870d4FbOejwmgPhiHdZNw5xNwscAN6ps0v -dFaUrR9nzWmbycsQCjXZGIZtGFCtXkA8Gdl5OMO4o+rzM0muNPS5fb++x7oNl1YG -gjReu2sQ85dPfMlnoHhr8Pz9LBcxVyOmcqtmT0SOSuPcoj6aDtcZ+EY9MQf6SR9E -ysmrJKMtp+ABgXglAj5hbT0dMpoJ2KpJYk62JAh/A6DDyv5YYUI0W57xY5+QzaV+ -YXnIvqwLjJ3cXEV4YH7ozLHAESgnAAUoQsin42rrRKt7GxjSdBoFhWjH69V2nl65 -LYRNjE1O5BBEX+rz0S+fe2ZZgT17kUr7eLZCq15J+L5xWQ7R4ERc0w== +3OTcffWLy2Ddlu2oUwnMWkvIb3e9wLL1jrKOpC0aeb//uiawgw50+KuU4pewB5fN +lfEJwpX4NjfPL+Nk+B1VAVrv5gwk5/SY9SwIJluutzmGS4TfVOhqi2SVd0mc9kOD +cSWQ9ltAohFu67jdx36j2u+eghDTOjls1lM8EpzL5cu3Bp4G+ST0nXAdnGtSZdV6 +eToLWjIHiC/JqeRSsKAlG0M5verw14sbb5MO4ZQF4Tdu0fCFgFvDSUM2V4ZLtS1N +VysLEkHoF56YKZ5H2FYLxOVDpn5lSiLnOgRbteEzsysyJ1zLxXWFFwJPCpLVNL0e +P7OoEoCR+oAdzGkkPF+EdMoULtQP+n6U7jGx3oFVS17NORIFvyxyP0hD4pGTGLnl +qAEk30lhKGAE5GgvA2itxZIno/sxPKr5T5Sc2yWh9RdQuLWYNrOb8Kz8J1iXV5l6 +/5TLGu5XVWIlBnUtjMFUe5M54tqGQ6SuDUlL2ud5YeLVN0T+RU/bqV2fXGoBUqKb +Oe8PECm62Ls0wjv27BIOXXV32WSXwsywSzBqq2YXZ5zc9Q0+Mf1Zl6jKwcr8rXhv +rA2kcpicONryggsPZnn/us1bVuWKndsCbm7A5om6HowpamNMPuxhISigzzE59L6X +X6Sl2F0N0zhrfUVlAAlfYTrwcQVtyBDj1xp2nzJFocurJt9EylLaT0Sw3nxWtuOg +yQuF05UPCzxqow/7dMVqtQKng0ptpsn/E+Kr/Egk1YaTpUUxref6mD3R1S+qWML8 +uqTa3y1CWd4u+aJZH2oZU3gmEd8GvuWnmhsw8iTyq1bzYIga1rQZqh4W5Ok9V+jR +GioT/x3mTIhtuEZ1Cmhne5qM3gWYgM3rC3D4+RnUFeThOC5lHtOYHtIEpg66cs7g +QYAn75ghEkyfG7ZvdxAU9Ngn6hckux9tFu3GmeEtdqhVOHaOMaYi60uGSk6uBnTv +P1sUqi70kMrIBWU7TgldKlTqVdReM87Nkb2O5v1xqtoswLWIi65hFWTqt/H65c1H +aEBG1cBqnqBMYuFk8b4TzZbuU9o1UKj0/6N5mpm//BmW65B0htEDP7IYpGF0mt0H +LkU+4ISmuLfPfQeviYio6/yASaFkHpxfK7N8CQvmyAG9U8FHRio2QCGSb2EO+BnT +Bti6L9oMiQbAsCLWTbvBhCVxdncFw1ncq8gkPMXjEEVUsqAo5Kg+903pRHUyHLzS +R6R3C6tTJnNtucJ0zqQMF3K1FHS1m8GrOm+hskJLTHgZLdz6tFTYkXfZBSCwIl7s +plg0wq9CrNC2B8MczWn/j3/h7qSI3wBNqADHMdoiOHECffCeyGEYjW3+0iMoj1m1 +wY0DIym4DDRzk6wsEesxVi8iiCVpYwWnjJAvWYECEO+hWuwCez+eGVkhCT/5g3xW +hPSRhivNuJT05tdR5o+yqONHn1eAQH7Ar3cj+neY5WC0iS5FK9axTqbHXotofD1e +pJX17ZVWsmIIpRvAWGD+LOcfTMZsaB9DJbkrPSWlMW3lC2S5JOq8OgfMNWIDDUN1 +guwpK5Z/lWV1qMMnaWeDVgPH/G0FssECXlCU5+/Ol654h8tm2bRXYAYHPM+OoW67 -----END RSA PRIVATE KEY----- diff --git a/extra/yassl/certs/dsa-cert.pem b/extra/yassl/certs/dsa-cert.pem index ed1138dad01ea..10d533edc88b0 100644 --- a/extra/yassl/certs/dsa-cert.pem +++ b/extra/yassl/certs/dsa-cert.pem @@ -1,70 +1,22 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - ce:df:23:31:64:b4:13:da - Signature Algorithm: dsaWithSHA1 - Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=testing, CN=www.yassl.com/emailAddress=info@yassl.com - Validity - Not Before: Jun 30 18:56:38 2010 GMT - Not After : Mar 26 18:56:39 2013 GMT - Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=testing, CN=www.yassl.com/emailAddress=info@yassl.com - Subject Public Key Info: - Public Key Algorithm: dsaEncryption - DSA Public Key: - pub: - 04:84:a0:26:31:72:0c:e8:4f:5d:53:17:62:b1:80: - ca:c0:16:5f:c3:1e:ea:c5:d9:98:38:f9:be:56:53: - 47:68:ce:08:22:57:1c:bb:0d:77:91:cf:5b:36:ed: - f3:24:82:90:8a:cd:90:7c:db:77:f9:17:2d:73:73: - ef:bb:b9:82 - P: - 00:99:29:69:80:c9:3c:98:68:45:a9:82:fe:67:eb: - 95:88:c5:b4:0c:d6:26:45:95:19:2c:a0:20:5b:7e: - df:69:e9:dc:c3:0f:f3:61:0a:25:9b:f2:21:01:6a: - cd:aa:8c:37:e7:ca:66:db:56:f4:0f:7d:7a:d1:18: - b9:42:fd:1b:11 - Q: - 00:ad:25:29:ab:0a:9f:09:1c:c1:ad:03:20:76:7f: - a6:b7:dd:4d:03:09 - G: - 12:88:99:da:e7:d0:0b:93:9b:e6:ee:3c:21:7f:9c: - b3:b4:8d:a5:8c:e2:37:80:3f:17:d1:81:4f:bd:f0: - 71:b6:32:08:54:dd:bf:01:e2:b3:77:06:64:75:8a: - 04:d6:79:39:b1:02:03:03:c6:06:74:e5:90:05:0a: - 10:46:19:31 - X509v3 extensions: - X509v3 Subject Key Identifier: - BE:F9:8C:5D:D6:1C:B4:EE:81:DD:36:56:0A:21:E4:61:44:73:E9:E2 - X509v3 Authority Key Identifier: - keyid:BE:F9:8C:5D:D6:1C:B4:EE:81:DD:36:56:0A:21:E4:61:44:73:E9:E2 - DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=testing/CN=www.yassl.com/emailAddress=info@yassl.com - serial:CE:DF:23:31:64:B4:13:DA - - X509v3 Basic Constraints: - CA:TRUE - Signature Algorithm: dsaWithSHA1 - 30:2d:02:14:00:a3:21:20:34:6a:2c:f9:fb:76:d7:20:c9:c0: - 35:1b:64:9a:c2:83:02:15:00:a4:59:ac:6d:da:85:48:ff:f5: - 0d:49:72:c8:cd:91:fc:ec:2f:5c:63 -----BEGIN CERTIFICATE----- -MIIDfjCCAz2gAwIBAgIJAM7fIzFktBPaMAkGByqGSM44BAMwgYoxCzAJBgNVBAYT -AlVTMQ8wDQYDVQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRsYW5kMQ4wDAYDVQQK -EwV5YVNTTDEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNv -bTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTAwNjMwMTg1NjM4 -WhcNMTMwMzI2MTg1NjM5WjCBijELMAkGA1UEBhMCVVMxDzANBgNVBAgTBk9yZWdv -bjERMA8GA1UEBxMIUG9ydGxhbmQxDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwd0 -ZXN0aW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5p -bmZvQHlhc3NsLmNvbTCB8DCBqAYHKoZIzjgEATCBnAJBAJkpaYDJPJhoRamC/mfr -lYjFtAzWJkWVGSygIFt+32np3MMP82EKJZvyIQFqzaqMN+fKZttW9A99etEYuUL9 -GxECFQCtJSmrCp8JHMGtAyB2f6a33U0DCQJAEoiZ2ufQC5Ob5u48IX+cs7SNpYzi -N4A/F9GBT73wcbYyCFTdvwHis3cGZHWKBNZ5ObECAwPGBnTlkAUKEEYZMQNDAAJA -BISgJjFyDOhPXVMXYrGAysAWX8Me6sXZmDj5vlZTR2jOCCJXHLsNd5HPWzbt8ySC -kIrNkHzbd/kXLXNz77u5gqOB8jCB7zAdBgNVHQ4EFgQUvvmMXdYctO6B3TZWCiHk -YURz6eIwgb8GA1UdIwSBtzCBtIAUvvmMXdYctO6B3TZWCiHkYURz6eKhgZCkgY0w -gYoxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRs -YW5kMQ4wDAYDVQQKEwV5YVNTTDEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMN -d3d3Lnlhc3NsLmNvbTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb22CCQDO -3yMxZLQT2jAMBgNVHRMEBTADAQH/MAkGByqGSM44BAMDMAAwLQIUAKMhIDRqLPn7 -dtcgycA1G2SawoMCFQCkWaxt2oVI//UNSXLIzZH87C9cYw== +MIIDqzCCA2ugAwIBAgIJAMGqrgDU6DyhMAkGByqGSM44BAMwgY4xCzAJBgNVBAYT +AlVTMQ8wDQYDVQQIDAZPcmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQK +DAd3b2xmU1NMMRAwDgYDVQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wu +Y29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTEzMDQyMjIw +MDk0NFoXDTE2MDExNzIwMDk0NFowgY4xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZP +cmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYD +VQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wuY29tMR8wHQYJKoZIhvcN +AQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBuDCCASwGByqGSM44BAEwggEfAoGBAL1R +7koy4IrH6sbh6nDEUUPPKgfhxxLCWCVexF2+qzANEr+hC9M002haJXFOfeS9DyoO +WFbL0qMZOuqv+22CaHnoUWl7q3PjJOAI3JH0P54ZyUPuU1909RzgTdIDp5+ikbr7 +KYjnltL73FQVMbjTZQKthIpPn3MjYcF+4jp2W2zFAhUAkcntYND6MGf+eYzIJDN2 +L7SonHUCgYEAklpxErfqznIZjVvqqHFaq+mgAL5J8QrKVmdhYZh/Y8z4jCjoCA8o +TDoFKxf7s2ZzgaPKvglaEKiYqLqic9qY78DYJswzQMLFvjsF4sFZ+pYCBdWPQI4N +PgxCiznK6Ce+JH9ikSBvMvG+tevjr2UpawDIHX3+AWYaZBZwKADAaboDgYUAAoGB +AJ3LY89yHyvQ/TsQ6zlYbovjbk/ogndsMqPdNUvL4RuPTgJP/caaDDa0XJ7ak6A7 +TJ+QheLNwOXoZPYJC4EGFSDAXpYniGhbWIrVTCGe6lmZDfnx40WXS0kk3m/DHaC0 +3ElLAiybxVGxyqoUfbT3Zv1JwftWMuiqHH5uADhdXuXVo1AwTjAdBgNVHQ4EFgQU +IJjk416o4v8qpH9LBtXlR9v8gccwHwYDVR0jBBgwFoAUIJjk416o4v8qpH9LBtXl +R9v8gccwDAYDVR0TBAUwAwEB/zAJBgcqhkjOOAQDAy8AMCwCFCjGKIdOSV12LcTu +k08owGM6YkO1AhQe+K173VuaO/OsDNsxZlKpyH8+1g== -----END CERTIFICATE----- diff --git a/extra/yassl/certs/server-cert.pem b/extra/yassl/certs/server-cert.pem index 1ec53c026281d..cfe4b7b82281a 100644 --- a/extra/yassl/certs/server-cert.pem +++ b/extra/yassl/certs/server-cert.pem @@ -1,39 +1,157 @@ Certificate: Data: Version: 1 (0x0) - Serial Number: 1 (0x1) - Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + Serial Number: 2 (0x2) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com Validity - Not Before: Jun 30 18:52:17 2010 GMT - Not After : Mar 26 18:52:17 2013 GMT - Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=support, CN=www.yassl.com/emailAddress=info@yassl.com + Not Before: Oct 24 18:27:13 2011 GMT + Not After : Jul 20 18:27:13 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=Support, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption - RSA Public Key: (512 bit) - Modulus (512 bit): - 00:c6:7b:c0:68:81:2f:de:82:3f:f9:ac:c3:86:4a: - 66:b7:ec:d4:f1:f6:64:21:ff:f5:a2:34:42:d0:38: - 9f:c6:dd:3b:6e:26:65:6a:54:96:dd:d2:7b:eb:36: - a2:ae:7e:2a:9e:7e:56:a5:b6:87:9f:15:c7:18:66: - 7e:16:77:e2:a7 + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27: + 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6: + f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75: + f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab: + 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e: + 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25: + 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c: + 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6: + 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc: + 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8: + dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3: + e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9: + 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0: + c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77: + ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4: + b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22: + a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f: + ad:d7 Exponent: 65537 (0x10001) - Signature Algorithm: md5WithRSAEncryption - 58:a9:98:e7:16:52:4c:40:e7:e1:47:92:19:1b:3a:8f:97:6c: - 7b:b7:b0:cb:20:6d:ad:b5:d3:47:58:d8:e4:f2:3e:32:e9:ef: - 87:77:e5:54:36:f4:8d:50:8d:07:b4:77:45:ea:9d:a4:33:36: - 9b:0b:e0:74:58:11:c5:01:7b:4d + Signature Algorithm: sha1WithRSAEncryption + 71:4e:d3:62:df:cc:4c:f7:cd:b7:6e:52:0b:6c:6e:e0:bd:c2: + 2d:07:d7:c0:b0:6e:43:1e:35:bc:30:01:50:f0:ff:99:23:6c: + 18:1a:41:b6:11:d6:d4:19:61:fd:e4:77:97:1c:39:e1:57:ab: + c5:15:63:77:11:36:5e:74:e2:24:0b:1f:41:78:ad:b7:81:e7: + b4:40:66:80:f0:4b:91:a0:6d:a8:6e:3d:53:d9:8b:ce:2a:e1: + 0b:45:65:87:a1:96:ae:ee:3e:88:d5:12:1f:78:17:ae:2c:c5: + 73:44:d8:dc:f4:af:d8:cc:ae:4c:e1:0c:be:55:a4:99:f7:6e: + 96:c0:c8:45:87:bf:dc:51:57:ff:9e:73:37:6a:18:9c:c3:f9: + 22:7a:f4:b0:52:bd:fc:21:30:f8:c5:ff:1e:87:7d:ad:a2:5a: + 35:f5:22:a8:b4:0a:76:38:e6:76:b0:98:af:1b:ec:8a:0a:43: + 74:d2:85:34:37:84:07:e1:f6:23:b2:29:de:a6:b6:b7:4c:57: + 7e:96:06:cb:a9:16:25:29:3a:03:2d:55:7d:a6:8c:a4:f7:9e: + 81:c9:95:b6:7c:c1:4a:ce:94:66:0c:ca:88:eb:d2:09:f5:5b: + 19:58:82:df:27:fd:67:95:78:b7:02:06:d5:a7:61:bd:ef:3a: + fc:b2:61:cd -----BEGIN CERTIFICATE----- -MIICFDCCAb4CAQEwDQYJKoZIhvcNAQEEBQAwgZ4xCzAJBgNVBAYTAlVTMRAwDgYD -VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhzYXd0b290 -aDETMBEGA1UECxMKY29uc3VsdGluZzEkMCIGA1UEAxMbd3d3LnNhd3Rvb3RoLWNv -bnN1bHRpbmcuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0x -MDA2MzAxODUyMTdaFw0xMzAzMjYxODUyMTdaMIGKMQswCQYDVQQGEwJVUzEQMA4G -A1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjEOMAwGA1UEChMFeWFTU0wx -EDAOBgNVBAsTB3N1cHBvcnQxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkq -hkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB -AMZ7wGiBL96CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpUlt3Se+s2oq5+ -Kp5+VqW2h58VxxhmfhZ34qcCAwEAATANBgkqhkiG9w0BAQQFAANBAFipmOcWUkxA -5+FHkhkbOo+XbHu3sMsgba2100dY2OTyPjLp74d35VQ29I1QjQe0d0XqnaQzNpsL -4HRYEcUBe00= +MIIDkDCCAngCAQIwDQYJKoZIhvcNAQEFBQAwgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTExMDI0MTgyNzEzWhcN +MTQwNzIwMTgyNzEzWjCBijELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmEx +EDAOBgNVBAcTB0JvemVtYW4xDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwdTdXBw +b3J0MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZv +QHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFX +QfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/h +vXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4 +pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo +3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4 +D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHm +YYPF0pbf2dBPrdcCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAcU7TYt/MTPfNt25S +C2xu4L3CLQfXwLBuQx41vDABUPD/mSNsGBpBthHW1Blh/eR3lxw54VerxRVjdxE2 +XnTiJAsfQXitt4HntEBmgPBLkaBtqG49U9mLzirhC0Vlh6GWru4+iNUSH3gXrizF +c0TY3PSv2MyuTOEMvlWkmfdulsDIRYe/3FFX/55zN2oYnMP5Inr0sFK9/CEw+MX/ +Hod9raJaNfUiqLQKdjjmdrCYrxvsigpDdNKFNDeEB+H2I7Ip3qa2t0xXfpYGy6kW +JSk6Ay1VfaaMpPeegcmVtnzBSs6UZgzKiOvSCfVbGViC3yf9Z5V4twIG1adhve86 +/LJhzQ== -----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + e9:d0:a7:5f:79:25:f4:3c + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Validity + Not Before: Oct 24 18:18:15 2011 GMT + Not After : Jul 20 18:18:15 2014 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (2048 bit) + Modulus (2048 bit): + 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a: + f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac: + de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98: + 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77: + 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1: + 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3: + a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed: + a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95: + 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c: + 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db: + 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc: + 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98: + de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68: + cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2: + b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3: + 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98: + ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed: + 36:79 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + X509v3 Authority Key Identifier: + keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 + DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com + serial:E9:D0:A7:5F:79:25:F4:3C + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26: + 4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6: + e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c: + f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e: + af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18: + 98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02: + 8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab: + 1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80: + 61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87: + 1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f: + 60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf: + 18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12: + f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4: + b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70: + 5a:1f:7f:ca +-----BEGIN CERTIFICATE----- +MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD +VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G +A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3 +dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx +MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290 +aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd +MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q +8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k +EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A +dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/ +mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ +CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O +BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd +P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u +dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV +BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG +9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513 +PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH +Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr +G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m +ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi +rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg== diff --git a/extra/yassl/certs/server-key.pem b/extra/yassl/certs/server-key.pem index 154d661b1dfa0..d1627f4d4a739 100644 --- a/extra/yassl/certs/server-key.pem +++ b/extra/yassl/certs/server-key.pem @@ -1,9 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -MIIBOwIBAAJBAMZ7wGiBL96CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpU -lt3Se+s2oq5+Kp5+VqW2h58VxxhmfhZ34qcCAwEAAQJBAJSbGxgjgV+rTZL2Ev58 -viN/IoB25cm/Bn4Heu7DNn2A2kpdGX2cCaf7rEQoIKCiHxvopvxOcd/7nLS/gNli -dCECIQD/cX/9fvB1Uajw0fmvwNON9+3P9uJSqpig90zL32pwjQIhAMbqee9TBMN4 -TxXbgWqA92PrCXe8WDZ3PwoJqdR6MRUDAiEAny+TDF1z6hiWiGTCDgXDkKBlwgjf -p5aKgR077XzwLu0CICVpWEGg1ZaF/CnaPP7w/pZ2UDOK4vRrfRnAM4bY7H5NAiBS -1eXJ/MCZ2uPfpl7XK2BU9P69KdKUk5WHxdRchVvcDg== +MIIEpQIBAAKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8fJ/7 +qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwbU7lf +P9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEuuBDj +xsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTSELlk +wyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0sGlC +Qgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABAoIBAQCa0DQPUmIFUAHv +n+1kbsLE2hryhNeSEEiSxOlq64t1bMZ5OPLJckqGZFSVd8vDmp231B2kAMieTuTd +x7pnFsF0vKnWlI8rMBr77d8hBSPZSjm9mGtlmrjcxH3upkMVLj2+HSJgKnMw1T7Y +oqyGQy7E9WReP4l1DxHYUSVOn9iqo85gs+KK2X4b8GTKmlsFC1uqy+XjP24yIgXz +0PrvdFKB4l90073/MYNFdfpjepcu1rYZxpIm5CgGUFAOeC6peA0Ul7QS2DFAq6EB +QcIw+AdfFuRhd9Jg8p+N6PS662PeKpeB70xs5lU0USsoNPRTHMRYCj+7r7X3SoVD +LTzxWFiBAoGBAPIsVHY5I2PJEDK3k62vvhl1loFk5rW4iUJB0W3QHBv4G6xpyzY8 +ZH3c9Bm4w2CxV0hfUk9ZOlV/MsAZQ1A/rs5vF/MOn0DKTq0VO8l56cBZOHNwnAp8 +yTpIMqfYSXUKhcLC/RVz2pkJKmmanwpxv7AEpox6Wm9IWlQ7xrFTF9/nAoGBAMuT +3ncVXbdcXHzYkKmYLdZpDmOzo9ymzItqpKISjI57SCyySzfcBhh96v52odSh6T8N +zRtfr1+elltbD6F8r7ObkNtXczrtsCNErkFPHwdCEyNMy/r0FKTV9542fFufqDzB +hV900jkt/9CE3/uzIHoumxeu5roLrl9TpFLtG8SRAoGBAOyY2rvV/vlSSn0CVUlv +VW5SL4SjK7OGYrNU0mNS2uOIdqDvixWl0xgUcndex6MEH54ZYrUbG57D8rUy+UzB +qusMJn3UX0pRXKRFBnBEp1bA1CIUdp7YY1CJkNPiv4GVkjFBhzkaQwsYpVMfORpf +H0O8h2rfbtMiAP4imHBOGhkpAoGBAIpBVihRnl/Ungs7mKNU8mxW1KrpaTOFJAza +1AwtxL9PAmk4fNTm3Ezt1xYRwz4A58MmwFEC3rt1nG9WnHrzju/PisUr0toGakTJ +c/5umYf4W77xfOZltU9s8MnF/xbKixsX4lg9ojerAby/QM5TjI7t7+5ZneBj5nxe +9Y5L8TvBAoGATUX5QIzFW/QqGoq08hysa+kMVja3TnKW1eWK0uL/8fEYEz2GCbjY +dqfJHHFSlDBD4PF4dP1hG0wJzOZoKnGtHN9DvFbbpaS+NXCkXs9P/ABVmTo9I89n +WvUi+LUp0EQR6zUuRr79jhiyX6i/GTKh9dwD5nyaHwx8qbAOITc78bA= -----END RSA PRIVATE KEY----- diff --git a/extra/yassl/certs/server-keyEnc.pem b/extra/yassl/certs/server-keyEnc.pem index d3500a1b64749..278a0946c6850 100644 --- a/extra/yassl/certs/server-keyEnc.pem +++ b/extra/yassl/certs/server-keyEnc.pem @@ -2,11 +2,29 @@ Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,08132C1FFF5BC8CC -gsvuAsGmB8AkR23M25w4E6wuywfBey1Jqh3g71gJcnsUYwynex9dvfAU0lTowOXh -sb7ld1KNjEMzrht9AC1IC0iE1rLqvRQZOdJ7h3n7aHZQ4a/HjcwAhqJq0ZW45m6Q -mpoO5fRISjx2VbKFRUz6Xj2x0/do3IjQhpuUDVrTFFe1sEySM6APZ6CVpcnTOyPR -ADyLDKzOi2E+sj1UXs58pct56FaqTIZPUEflICU3k6q9FPU6gsYANRLfzegclkv4 -JAx6mKVSJuYnjCCppx8WBwGJa1J1GcYRJ3qFfdbUzL4bcXTvoFkJEnDkHsXgDUS6 -xmT0XGT3IMaW8cwQ8KD8m5YYI/L26Mas/w3eA2ekyMR8pYICjXp/YZtcKxxkQSVE -Uv/+D+20KbNAHIW5Mrxf61cX/CggGEbVP8ZhDY1flh8= +W+krChiFlNU+koE0Bep+U45OG4V4IFZv67ex6yJHgcsPd+HQ692A/h+5dYc8rdlW +2LDgSODHHIMTt6RVJDxXxXs3qFmJQbnVXeXxV209X8EfaRarh+yiMKeUP6K8hIvj ++IYRma6iKOs+d4KlcZZudGs2f/x8nhxXbmQtrLhGd4h91mnJk2sKmiz7UkUy6Qng +gOHnT2dfF4Qk2ZYsjisRHjpWZiqh40GO1LuTgUjZoH+LGhMwMwOAE6+ss5xa+yE+ +Xd9Yljm0/QW68JILkCJQjLDRvPGxDJyvYq6TT/kSElsRlI/AuRrZH1YVD3hn/xjx +tDoEB+JEbH6iu9ne2srxnGSKLzoUbb4XPaCjLIW9BJf7oANmmFQpZZQiRTyIUVWi +IE5hJciqF7ra7IwfZAW/PeWGXpzNOVN9QAvyAMsmvUCzJdxd1ySUatjhZ+mSFYGk +rDVtyrgt4ZQgV0EdJV0Yn1ZWMOk1qEKXT0JAnI+9S6Y+QEdwXmdz3xlVuq61Jvub +iJUVepnD/1QeFfWy8JwlscWpWFrkr569f3SNG+FGb6fufnUP7K6sX3urj+pj1QET +f9NmmvLBsVsbj1Egg3wnxbVHIUPky64LY04wtNJaAwhuG6mKCvaClKYMTmTCyrzP +aRwghhMQ3yHUbo2A1ZppYsXXg8lX30eW+5O77N9Q3xfP0phODHXsnXhBH09ml1JQ +MmiCaL5n6sIVcjtFmN/kyaEuz/1VrBSaDCPeW88n61UXUidXrGOZN/2c/2xFir8B +2rdE82lQLl07SJxzQQ6aJVvrc5tnbV/ENDySS5dG6Yl/w89/nuu0RFHmAweKqfGC +8m0XOkmonIk6h3YT7XrkE0b/2jkf1mMaMKrGGfRmxqNt1nGxMCJHAO/Sn9v+I9rU +W7HCZ04RTnRp1BXcqDxdwlveDKJRVfiKOSSEOpEXXlexS5R1vikmxrCwK5YVUTkT +3tgahVtHJkFHnBHBzXyHUDwWahxZaU9TO43z0JFxs0zINWUWppldf0oyWjP1FSrI +a9tXBs7aoykUY9Av9K0p4UJJU005qzD/tuegZFX34wRETJO0BJnlZHTTZSqLSVX+ +KZg4nPq8Xii1VHta3tgw7up2z1tpepsBerTsRQ1+IDpxLaIxgt9am0hXVTiMLex/ +DD9UvQC/eBUmpmWraK/Mqeq/UrPl+lmeoXsG6LWIvEp9d19rJ/3OhIJf2pDh9dC8 +NzJoNP9qOrDajAwzeeF5dbQxCaG+X8am9s4wryC0p+NrQ0tzv8efey0zBodDIOgo +F1G7+ADgHy+V565q8sdL52xx0xB9Ty5p9IOfOUbxa3K65TJf/I/QAQjl4LyTbkfr +kzpYAG2uF55EB3Eq3aMrj47pzZy0ELXXN2qYJ9Oelgl+h6MzYbmd+Wm+A2Cofv3u +7ANAyjAYN7/Lo3lTFAt7sXAXGKnqw62JNSSMkIqZVrG5dn7Jxj5AJCVyYxTrm6Y+ +DDcblX47XrWxVoVJN/dLJZ8FzWs4o/8w9Yn8U54Ci7F0g+j2f+OpDy9PGFYT9pKw +xWG8chkYE6QPilEYvdi26ZnZ3u236q9PMtyRP87NmBN2sLkj/rbBTzBxWIaGS+Mt -----END RSA PRIVATE KEY----- diff --git a/extra/yassl/include/cert_wrapper.hpp b/extra/yassl/include/cert_wrapper.hpp index cc687e24f6af7..ad4c34d65c718 100644 --- a/extra/yassl/include/cert_wrapper.hpp +++ b/extra/yassl/include/cert_wrapper.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -89,6 +89,7 @@ class CertManager { bool verifyNone_; // no error if verify fails bool failNoCert_; bool sendVerify_; + bool sendBlankCert_; VerifyCallback verifyCallback_; // user verify callback public: CertManager(); @@ -116,16 +117,18 @@ class CertManager { bool verifyNone() const; bool failNoCert() const; bool sendVerify() const; + bool sendBlankCert() const; void setVerifyPeer(); void setVerifyNone(); void setFailNoCert(); void setSendVerify(); + void setSendBlankCert(); void setPeerX509(X509*); void setVerifyCallback(VerifyCallback); private: CertManager(const CertManager&); // hide copy - CertManager& operator=(const CertManager&); // and assign + CertManager& operator=(const CertManager&); // and assigin }; diff --git a/extra/yassl/include/crypto_wrapper.hpp b/extra/yassl/include/crypto_wrapper.hpp index 07b5925265a95..b09b662c88c5a 100644 --- a/extra/yassl/include/crypto_wrapper.hpp +++ b/extra/yassl/include/crypto_wrapper.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/factory.hpp b/extra/yassl/include/factory.hpp index e66e32dcdf68d..5c60335fbc2ec 100644 --- a/extra/yassl/include/factory.hpp +++ b/extra/yassl/include/factory.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/handshake.hpp b/extra/yassl/include/handshake.hpp index 549a31bf3e9ed..a8ed0545ae4ef 100644 --- a/extra/yassl/include/handshake.hpp +++ b/extra/yassl/include/handshake.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/log.hpp b/extra/yassl/include/log.hpp index fb480eeefb62f..faaf68e64a16c 100644 --- a/extra/yassl/include/log.hpp +++ b/extra/yassl/include/log.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/crypto.h b/extra/yassl/include/openssl/crypto.h index 22bbbbf594e1e..103fcbb0e30e8 100644 --- a/extra/yassl/include/openssl/crypto.h +++ b/extra/yassl/include/openssl/crypto.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005, 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/des.h b/extra/yassl/include/openssl/des.h index 6e2ebbd83f5af..f7394b65634c0 100644 --- a/extra/yassl/include/openssl/des.h +++ b/extra/yassl/include/openssl/des.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/des_old.h b/extra/yassl/include/openssl/des_old.h index 1223a38056ce7..b6e2e3e969a91 100644 --- a/extra/yassl/include/openssl/des_old.h +++ b/extra/yassl/include/openssl/des_old.h @@ -1,5 +1,6 @@ /* Copyright (C) 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/engine.h b/extra/yassl/include/openssl/engine.h index cadb05a92b4f5..15ddcd146405c 100644 --- a/extra/yassl/include/openssl/engine.h +++ b/extra/yassl/include/openssl/engine.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/err.h b/extra/yassl/include/openssl/err.h index 23f2f1393ab72..948474296faf0 100644 --- a/extra/yassl/include/openssl/err.h +++ b/extra/yassl/include/openssl/err.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/evp.h b/extra/yassl/include/openssl/evp.h index eccdcdffda6ed..6aa7335dabc5f 100644 --- a/extra/yassl/include/openssl/evp.h +++ b/extra/yassl/include/openssl/evp.h @@ -1,5 +1,6 @@ /* Copyright (C) 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/generate_prefix_files.pl b/extra/yassl/include/openssl/generate_prefix_files.pl index b94f0a2e79095..8fbfb14695529 100755 --- a/extra/yassl/include/openssl/generate_prefix_files.pl +++ b/extra/yassl/include/openssl/generate_prefix_files.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl # Copyright (C) 2006 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/hmac.h b/extra/yassl/include/openssl/hmac.h index 478d92e087d6e..5da6644e1de1a 100644 --- a/extra/yassl/include/openssl/hmac.h +++ b/extra/yassl/include/openssl/hmac.h @@ -1,5 +1,6 @@ /* Copyright (C) 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/lhash.h b/extra/yassl/include/openssl/lhash.h index 34bc34c3f1104..6d64df7d9d2c3 100644 --- a/extra/yassl/include/openssl/lhash.h +++ b/extra/yassl/include/openssl/lhash.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/md4.h b/extra/yassl/include/openssl/md4.h index 2718d170fcf99..8a864993c9c5f 100644 --- a/extra/yassl/include/openssl/md4.h +++ b/extra/yassl/include/openssl/md4.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/md5.h b/extra/yassl/include/openssl/md5.h index 9400649ebd8cd..b54ebcd910e55 100644 --- a/extra/yassl/include/openssl/md5.h +++ b/extra/yassl/include/openssl/md5.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/objects.h b/extra/yassl/include/openssl/objects.h index ec00e04e213e2..ed2c02945272d 100644 --- a/extra/yassl/include/openssl/objects.h +++ b/extra/yassl/include/openssl/objects.h @@ -1,5 +1,6 @@ /* Copyright (C) 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/opensslv.h b/extra/yassl/include/openssl/opensslv.h index bafcfaec8a382..88b9ca6d26dee 100644 --- a/extra/yassl/include/openssl/opensslv.h +++ b/extra/yassl/include/openssl/opensslv.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/pem.h b/extra/yassl/include/openssl/pem.h index 3762b9597a446..c467e461d7fb2 100644 --- a/extra/yassl/include/openssl/pem.h +++ b/extra/yassl/include/openssl/pem.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/pkcs12.h b/extra/yassl/include/openssl/pkcs12.h index 71ba287ede0f6..c3f8ee6796818 100644 --- a/extra/yassl/include/openssl/pkcs12.h +++ b/extra/yassl/include/openssl/pkcs12.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/prefix_crypto.h b/extra/yassl/include/openssl/prefix_crypto.h index ff3aea14b0ebd..895dd51a23f13 100644 --- a/extra/yassl/include/openssl/prefix_crypto.h +++ b/extra/yassl/include/openssl/prefix_crypto.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/rand.h b/extra/yassl/include/openssl/rand.h index 136a01459e260..9e0cedf3e8653 100644 --- a/extra/yassl/include/openssl/rand.h +++ b/extra/yassl/include/openssl/rand.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/rsa.h b/extra/yassl/include/openssl/rsa.h index b20da32be2490..95305a84ba596 100644 --- a/extra/yassl/include/openssl/rsa.h +++ b/extra/yassl/include/openssl/rsa.h @@ -1,5 +1,6 @@ /* Copyright (C) 2005, 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/sha.h b/extra/yassl/include/openssl/sha.h index 79b46ec83cee4..5b7c6bd238a85 100644 --- a/extra/yassl/include/openssl/sha.h +++ b/extra/yassl/include/openssl/sha.h @@ -1,5 +1,6 @@ /* Copyright (C) 2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h index eaf7b0cd1fb12..3c84002787979 100644 --- a/extra/yassl/include/openssl/ssl.h +++ b/extra/yassl/include/openssl/ssl.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2011, Oracle and/or its affiliates. + Copyright (c) 2005, 2014, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,7 +34,7 @@ #include "rsa.h" -#define YASSL_VERSION "2.2.2" +#define YASSL_VERSION "2.3.0" #if defined(__cplusplus) diff --git a/extra/yassl/include/openssl/x509.h b/extra/yassl/include/openssl/x509.h index eb60bcbc0a624..74eb83eb13f7c 100644 --- a/extra/yassl/include/openssl/x509.h +++ b/extra/yassl/include/openssl/x509.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/x509v3.h b/extra/yassl/include/openssl/x509v3.h index 1215826f53f5a..b48e9b485d4ee 100644 --- a/extra/yassl/include/openssl/x509v3.h +++ b/extra/yassl/include/openssl/x509v3.h @@ -1,5 +1,6 @@ /* Copyright (C) 2006 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/timer.hpp b/extra/yassl/include/timer.hpp index 725e73cf45383..1587c079ba082 100644 --- a/extra/yassl/include/timer.hpp +++ b/extra/yassl/include/timer.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/yassl.hpp b/extra/yassl/include/yassl.hpp index 29e0a5d94ecb7..e7b9a6f25267c 100644 --- a/extra/yassl/include/yassl.hpp +++ b/extra/yassl/include/yassl.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/cert_wrapper.cpp b/extra/yassl/src/cert_wrapper.cpp index 752e9cf5f0f10..af94f5bc24fd2 100644 --- a/extra/yassl/src/cert_wrapper.cpp +++ b/extra/yassl/src/cert_wrapper.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -91,7 +91,7 @@ opaque* x509::use_buffer() //CertManager CertManager::CertManager() : peerX509_(0), selfX509_(0), verifyPeer_(false), verifyNone_(false), failNoCert_(false), - sendVerify_(false), verifyCallback_(0) + sendVerify_(false), sendBlankCert_(false), verifyCallback_(0) {} @@ -143,6 +143,11 @@ void CertManager::setVerifyNone() verifyNone_ = true; } +bool CertManager::sendBlankCert() const +{ + return sendBlankCert_; +} + void CertManager::setFailNoCert() { @@ -155,6 +160,11 @@ void CertManager::setSendVerify() sendVerify_ = true; } +void CertManager::setSendBlankCert() +{ + sendBlankCert_ = true; +} + void CertManager::setVerifyCallback(VerifyCallback vc) { diff --git a/extra/yassl/src/crypto_wrapper.cpp b/extra/yassl/src/crypto_wrapper.cpp index d85cc6ba6a009..d8bc7a75ae360 100644 --- a/extra/yassl/src/crypto_wrapper.cpp +++ b/extra/yassl/src/crypto_wrapper.cpp @@ -953,12 +953,9 @@ x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info) info->set = true; } } - // get blank line - if (fgets(line,sizeof(line), file) == 0) - { - /* Impossible case */ - } begin = ftell(file); + if (fgets(line,sizeof(line), file)) // get blank line + begin = ftell(file); } } diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp index 79a0c291fb6c0..90c3762a1fc0c 100644 --- a/extra/yassl/src/handshake.cpp +++ b/extra/yassl/src/handshake.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2013, Oracle and/or its affiliates. + Copyright (c) 2005, 2014, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1160,6 +1160,8 @@ void sendCertificateVerify(SSL& ssl, BufferOutput buffer) { if (ssl.GetError()) return; + if(ssl.getCrypto().get_certManager().sendBlankCert()) return; + CertificateVerify verify; verify.Build(ssl); RecordLayerHeader rlHeader; diff --git a/extra/yassl/src/log.cpp b/extra/yassl/src/log.cpp index 35db4136a54c6..13c682957473f 100644 --- a/extra/yassl/src/log.cpp +++ b/extra/yassl/src/log.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/timer.cpp b/extra/yassl/src/timer.cpp index 945cc8c8b0be0..0c3f044c75f10 100644 --- a/extra/yassl/src/timer.cpp +++ b/extra/yassl/src/timer.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/yassl_imp.cpp b/extra/yassl/src/yassl_imp.cpp index b927a55237db0..4dcf275e7f2f7 100644 --- a/extra/yassl/src/yassl_imp.cpp +++ b/extra/yassl/src/yassl_imp.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2013, Oracle and/or its affiliates + Copyright (c) 2005, 2014, Oracle and/or its affiliates This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1199,22 +1199,38 @@ output_buffer& operator<<(output_buffer& output, const HandShakeBase& hs) Certificate::Certificate(const x509* cert) : cert_(cert) { - set_length(cert_->get_length() + 2 * CERT_HEADER); // list and cert size + if (cert) + set_length(cert_->get_length() + 2 * CERT_HEADER); // list and cert size + else + set_length(CERT_HEADER); // total blank cert size, just list header } const opaque* Certificate::get_buffer() const { - return cert_->get_buffer(); + if (cert_) + return cert_->get_buffer(); + + return NULL; } // output operator for Certificate output_buffer& operator<<(output_buffer& output, const Certificate& cert) { - uint sz = cert.get_length() - 2 * CERT_HEADER; + uint sz = cert.get_length(); opaque tmp[CERT_HEADER]; + if ((int)sz > CERT_HEADER) + sz -= 2 * CERT_HEADER; // actual cert, not including headers + else { + sz = 0; // blank cert case + c32to24(sz, tmp); + output.write(tmp, CERT_HEADER); + + return output; + } + c32to24(sz + CERT_HEADER, tmp); output.write(tmp, CERT_HEADER); c32to24(sz, tmp); @@ -1264,9 +1280,11 @@ void Certificate::Process(input_buffer& input, SSL& ssl) ssl.SetError(YasslError(bad_input)); return; } - x509* myCert; - cm.AddPeerCert(myCert = NEW_YS x509(cert_sz)); - input.read(myCert->use_buffer(), myCert->get_length()); + if (cert_sz) { + x509* myCert; + cm.AddPeerCert(myCert = NEW_YS x509(cert_sz)); + input.read(myCert->use_buffer(), myCert->get_length()); + } list_sz -= cert_sz + CERT_HEADER; } @@ -1969,9 +1987,9 @@ void CertificateRequest::Process(input_buffer&, SSL& ssl) { CertManager& cm = ssl.useCrypto().use_certManager(); - // make sure user provided cert and key before sending and using - if (cm.get_cert() && cm.get_privateKey()) - cm.setSendVerify(); + cm.setSendVerify(); + if (cm.get_cert() == NULL || cm.get_privateKey() == NULL) + cm.setSendBlankCert(); // send blank cert, OpenSSL requires now } diff --git a/extra/yassl/taocrypt/include/algebra.hpp b/extra/yassl/taocrypt/include/algebra.hpp index 298ef115a4a2a..e084172b93f77 100644 --- a/extra/yassl/taocrypt/include/algebra.hpp +++ b/extra/yassl/taocrypt/include/algebra.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/arc4.hpp b/extra/yassl/taocrypt/include/arc4.hpp index 757e1a50d7154..333d057168f44 100644 --- a/extra/yassl/taocrypt/include/arc4.hpp +++ b/extra/yassl/taocrypt/include/arc4.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/coding.hpp b/extra/yassl/taocrypt/include/coding.hpp index 3b1c06876045f..8c30169c76519 100644 --- a/extra/yassl/taocrypt/include/coding.hpp +++ b/extra/yassl/taocrypt/include/coding.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/dh.hpp b/extra/yassl/taocrypt/include/dh.hpp index b7724cbd80d27..2dff8dcd58e97 100644 --- a/extra/yassl/taocrypt/include/dh.hpp +++ b/extra/yassl/taocrypt/include/dh.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/dsa.hpp b/extra/yassl/taocrypt/include/dsa.hpp index f185b852cdc54..9dffcbe446049 100644 --- a/extra/yassl/taocrypt/include/dsa.hpp +++ b/extra/yassl/taocrypt/include/dsa.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/error.hpp b/extra/yassl/taocrypt/include/error.hpp index ef8b065d2f198..49bc62e6e8dd2 100644 --- a/extra/yassl/taocrypt/include/error.hpp +++ b/extra/yassl/taocrypt/include/error.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/hmac.hpp b/extra/yassl/taocrypt/include/hmac.hpp index 1d486514e06ab..16e208eeda15b 100644 --- a/extra/yassl/taocrypt/include/hmac.hpp +++ b/extra/yassl/taocrypt/include/hmac.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/integer.hpp b/extra/yassl/taocrypt/include/integer.hpp index e1a2ed5f4267b..68f3c4bbf39ee 100644 --- a/extra/yassl/taocrypt/include/integer.hpp +++ b/extra/yassl/taocrypt/include/integer.hpp @@ -45,6 +45,14 @@ #endif +#ifdef TAOCRYPT_X86ASM_AVAILABLE + #if defined(__GNUC__) && (__GNUC__ >= 4) + // GCC 4 or greater optimizes too much inline on recursive for bigint, + // -O3 just as fast without asm here anyway + #undef TAOCRYPT_X86ASM_AVAILABLE + #endif +#endif + #ifdef TAOCRYPT_X86ASM_AVAILABLE #ifdef _M_IX86 diff --git a/extra/yassl/taocrypt/include/md2.hpp b/extra/yassl/taocrypt/include/md2.hpp index cb13d86ec070e..49fefa9a2732b 100644 --- a/extra/yassl/taocrypt/include/md2.hpp +++ b/extra/yassl/taocrypt/include/md2.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/md4.hpp b/extra/yassl/taocrypt/include/md4.hpp index 28c2bc7efd1a2..e27efbe82c3a5 100644 --- a/extra/yassl/taocrypt/include/md4.hpp +++ b/extra/yassl/taocrypt/include/md4.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/md5.hpp b/extra/yassl/taocrypt/include/md5.hpp index 9b461543675e4..49a411e869a9f 100644 --- a/extra/yassl/taocrypt/include/md5.hpp +++ b/extra/yassl/taocrypt/include/md5.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/misc.hpp b/extra/yassl/taocrypt/include/misc.hpp index ce9e3e371adc6..cb4d26e70c6e8 100644 --- a/extra/yassl/taocrypt/include/misc.hpp +++ b/extra/yassl/taocrypt/include/misc.hpp @@ -124,29 +124,28 @@ void CleanUp(); // no gas on these systems ?, disable for now -#if defined(__sun__) || defined (__APPLE__) +#if defined(__sun__) + #undef TAOCRYPT_DISABLE_X86ASM #define TAOCRYPT_DISABLE_X86ASM #endif // icc problem with -03 and integer, disable for now #if defined(__INTEL_COMPILER) + #undef TAOCRYPT_DISABLE_X86ASM #define TAOCRYPT_DISABLE_X86ASM #endif -// a problem with gcc (newer versions only?) -#if defined(__GNUC__) +// indpedent of build system, unless ia32 asm is enabled disable it +#if !defined(TAOCRYPT_ENABLE_X86ASM) + #undef TAOCRYPT_DISABLE_X86ASM #define TAOCRYPT_DISABLE_X86ASM #endif // Turn on ia32 ASM for Big Integer // CodeWarrior defines _MSC_VER -// -// Do not use assembler with GCC, as the implementation for it is broken; -// it does not use proper GCC asm contraints and makes assumptions about -// frame pointers and so on, which breaks depending on GCC version and -// optimization level. #if !defined(TAOCRYPT_DISABLE_X86ASM) && ((defined(_MSC_VER) && \ - !defined(__MWERKS__) && defined(_M_IX86))) + !defined(__MWERKS__) && defined(_M_IX86)) || \ + (defined(__GNUC__) && defined(__i386__))) #define TAOCRYPT_X86ASM_AVAILABLE #endif @@ -751,7 +750,11 @@ class PutBlock byte *m_block; }; -template +/* + XXX MYSQL: Setting A (assumeAligned) to false, + keeping it true might trigger segfault on SPARC. +*/ +template struct BlockGetAndPut { // function needed because of C++ grammatical ambiguity between diff --git a/extra/yassl/taocrypt/include/modarith.hpp b/extra/yassl/taocrypt/include/modarith.hpp index 501a8129b9060..75bf9b475934e 100644 --- a/extra/yassl/taocrypt/include/modarith.hpp +++ b/extra/yassl/taocrypt/include/modarith.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/random.hpp b/extra/yassl/taocrypt/include/random.hpp index 91058e8c5cf6b..b51b4c3c3697b 100644 --- a/extra/yassl/taocrypt/include/random.hpp +++ b/extra/yassl/taocrypt/include/random.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/ripemd.hpp b/extra/yassl/taocrypt/include/ripemd.hpp index a63f92ceadd5d..0599bdc5ac5df 100644 --- a/extra/yassl/taocrypt/include/ripemd.hpp +++ b/extra/yassl/taocrypt/include/ripemd.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/sha.hpp b/extra/yassl/taocrypt/include/sha.hpp index c0b4368121b1f..d1f9607f8deb3 100644 --- a/extra/yassl/taocrypt/include/sha.hpp +++ b/extra/yassl/taocrypt/include/sha.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/twofish.hpp b/extra/yassl/taocrypt/include/twofish.hpp index bc6f89a9f39f8..236daed5597b6 100644 --- a/extra/yassl/taocrypt/include/twofish.hpp +++ b/extra/yassl/taocrypt/include/twofish.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/type_traits.hpp b/extra/yassl/taocrypt/include/type_traits.hpp index 0dd5e4e5c507a..3383c23cd1ab3 100644 --- a/extra/yassl/taocrypt/include/type_traits.hpp +++ b/extra/yassl/taocrypt/include/type_traits.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/algorithm.hpp b/extra/yassl/taocrypt/mySTL/algorithm.hpp index d8bc29a0bb965..02a7c8c07d074 100644 --- a/extra/yassl/taocrypt/mySTL/algorithm.hpp +++ b/extra/yassl/taocrypt/mySTL/algorithm.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/helpers.hpp b/extra/yassl/taocrypt/mySTL/helpers.hpp index c0495a71d8400..10ebb0ac62b5b 100644 --- a/extra/yassl/taocrypt/mySTL/helpers.hpp +++ b/extra/yassl/taocrypt/mySTL/helpers.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/list.hpp b/extra/yassl/taocrypt/mySTL/list.hpp index 6a081cba5ad25..d3297db4418bc 100644 --- a/extra/yassl/taocrypt/mySTL/list.hpp +++ b/extra/yassl/taocrypt/mySTL/list.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/memory.hpp b/extra/yassl/taocrypt/mySTL/memory.hpp index b239aa6f907b6..0c57620ff01e1 100644 --- a/extra/yassl/taocrypt/mySTL/memory.hpp +++ b/extra/yassl/taocrypt/mySTL/memory.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/memory_array.hpp b/extra/yassl/taocrypt/mySTL/memory_array.hpp index a044498cd9864..cc49208e9f2f0 100644 --- a/extra/yassl/taocrypt/mySTL/memory_array.hpp +++ b/extra/yassl/taocrypt/mySTL/memory_array.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/pair.hpp b/extra/yassl/taocrypt/mySTL/pair.hpp index be2dbb14b8895..1c9579fa0570d 100644 --- a/extra/yassl/taocrypt/mySTL/pair.hpp +++ b/extra/yassl/taocrypt/mySTL/pair.hpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/aes.cpp b/extra/yassl/taocrypt/src/aes.cpp index f976650e028c0..b49001f0a955b 100644 --- a/extra/yassl/taocrypt/src/aes.cpp +++ b/extra/yassl/taocrypt/src/aes.cpp @@ -51,9 +51,8 @@ void AES::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else if (mode_ == CBC) - { - if (dir_ == ENCRYPTION) + else if (mode_ == CBC) { + if (dir_ == ENCRYPTION) { while (blocks--) { r_[0] ^= *(word32*)in; r_[1] ^= *(word32*)(in + 4); @@ -66,7 +65,8 @@ void AES::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else + } + else { while (blocks--) { AsmDecrypt(in, out, (void*)Td0); @@ -79,6 +79,7 @@ void AES::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } + } } } @@ -453,27 +454,31 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock, #if defined(DO_AES_ASM) #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( sub esp, 4 ) \ - AS2( movd mm7, ebp ) \ - AS2( mov [ebp - 4], esi ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov esi, DWORD PTR [ebp + 12] ) \ - AS2( mov ebp, DWORD PTR [ebp + 20] ) + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm7, ebp;" \ + "movd mm4, eax;" \ + "mov ebp, edx;" \ + "sub esp, 4;" #define EPILOG() \ - AS2( mov esi, [ebp - 4] ) \ - AS2( mov esp, ebp ) \ - AS2( movd ebx, mm4 ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "add esp, 4;" \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "S" (inBlock), "d" (boxes), "a" (outBlock) \ + : "%edi", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -505,6 +510,8 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock, #ifdef _MSC_VER __declspec(naked) +#else + __attribute__ ((noinline)) #endif void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const { @@ -538,7 +545,11 @@ void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const AS2( xor ecx, DWORD PTR [edi + 8] ) // s2 AS2( xor edx, DWORD PTR [edi + 12] ) // s3 - AS1(loop1: ) +#ifdef _MSC_VER + AS1( loop1: ) // loop1 +#else + AS1(1: ) // loop1 +#endif /* Put0 (mm0) = Te0[get0,rs 24] ^ Te1[get1,rs 16] ^ @@ -653,7 +664,11 @@ void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const AS1( dec edi ) AS2( movd mm5, edi ) - AS1( jnz loop1 ) +#ifdef _MSC_VER + AS1( jnz loop1) // loop1 +#else + AS1( jnz 1b ) // loop1 +#endif // last round /* @@ -800,9 +815,9 @@ void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const // store #ifdef __GNUC__ - AS2( mov esi, DWORD PTR [ebp + 16] ) // outBlock + AS2( movd esi, mm4 ) // outBlock #else - AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock + AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock #endif AS1( bswap ecx ) @@ -819,7 +834,9 @@ void AES::AsmEncrypt(const byte* inBlock, byte* outBlock, void* boxes) const #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const { @@ -854,7 +871,11 @@ void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const AS2( xor edx, DWORD PTR [edi + 12] ) // s3 - AS1(loop2: ) +#ifdef _MSC_VER + AS1( loop2: ) // loop2 +#else + AS1(2: ) // loop2 +#endif /* Put0 (mm0) = Td0[GETBYTE(get0, rs24)] ^ Td1[GETBYTE(get3, rs16)] ^ @@ -965,7 +986,11 @@ void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const AS1( dec edi ) AS2( movd mm5, edi ) - AS1( jnz loop2 ) +#ifdef _MSC_VER + AS1( jnz loop2) // loop2 +#else + AS1( jnz 2b ) // loop2 +#endif // last round /* @@ -1115,9 +1140,9 @@ void AES::AsmDecrypt(const byte* inBlock, byte* outBlock, void* boxes) const // store #ifdef __GNUC__ - AS2( mov esi, DWORD PTR [ebp + 16] ) // outBlock + AS2( movd esi, mm4 ) // outBlock #else - AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock + AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock #endif AS2( mov DWORD PTR [esi], eax ) AS2( mov DWORD PTR [esi + 4], ebx ) diff --git a/extra/yassl/taocrypt/src/arc4.cpp b/extra/yassl/taocrypt/src/arc4.cpp index a76a37904f984..f5794ec25666f 100644 --- a/extra/yassl/taocrypt/src/arc4.cpp +++ b/extra/yassl/taocrypt/src/arc4.cpp @@ -111,28 +111,27 @@ void ARC4::Process(byte* out, const byte* in, word32 length) void ARC4::AsmProcess(byte* out, const byte* in, word32 length) { #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov edi, DWORD PTR [ebp + 12] ) \ - AS2( mov esi, DWORD PTR [ebp + 16] ) \ - AS2( mov ebp, DWORD PTR [ebp + 20] ) + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "mov ebp, eax;" #define EPILOG() \ - AS2( movd ebp, mm6 ) \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( mov esp, ebp ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (out), "S" (in), "a" (length) \ + : "%edx", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -178,7 +177,11 @@ void ARC4::AsmProcess(byte* out, const byte* in, word32 length) AS2( movzx eax, BYTE PTR [ebp + ecx] ) -AS1( begin: ) +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif // y = (y+a) & 0xff; AS2( add edx, eax ) @@ -215,7 +218,11 @@ AS1( begin: ) AS1( inc edi ) AS1( dec DWORD PTR [esp] ) - AS1( jnz begin ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif // write back to x_ and y_ @@ -225,6 +232,8 @@ AS1( begin: ) AS1( nothing: ) + // inline adjust + AS2( add esp, 4 ) // fix room on stack EPILOG() } diff --git a/extra/yassl/taocrypt/src/bftables.cpp b/extra/yassl/taocrypt/src/bftables.cpp index 46469472e6a04..8e0bde1fed602 100644 --- a/extra/yassl/taocrypt/src/bftables.cpp +++ b/extra/yassl/taocrypt/src/bftables.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/blowfish.cpp b/extra/yassl/taocrypt/src/blowfish.cpp index 864f8bac2609d..67bbd0085273c 100644 --- a/extra/yassl/taocrypt/src/blowfish.cpp +++ b/extra/yassl/taocrypt/src/blowfish.cpp @@ -53,9 +53,8 @@ void Blowfish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else if (mode_ == CBC) - { - if (dir_ == ENCRYPTION) + else if (mode_ == CBC) { + if (dir_ == ENCRYPTION) { while (blocks--) { r_[0] ^= *(word32*)in; r_[1] ^= *(word32*)(in + 4); @@ -67,7 +66,8 @@ void Blowfish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else + } + else { while (blocks--) { AsmProcess(in, out); @@ -79,6 +79,7 @@ void Blowfish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } + } } } @@ -223,23 +224,26 @@ void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) #if defined(DO_BLOWFISH_ASM) #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov esi, DWORD PTR [ebp + 12] ) - + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm3, eax;" #define EPILOG() \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "S" (inBlock), "a" (outBlock) \ + : "%edi", "%edx", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -287,7 +291,9 @@ void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out) #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void Blowfish::AsmProcess(const byte* inBlock, byte* outBlock) const { @@ -336,7 +342,7 @@ void Blowfish::AsmProcess(const byte* inBlock, byte* outBlock) const #endif #ifdef __GNUC__ - AS2( mov edi, [ebp + 16] ) // outBlock + AS2( movd edi, mm3 ) // outBlock #else AS2( mov edi, [ebp + 12] ) // outBlock #endif diff --git a/extra/yassl/taocrypt/src/des.cpp b/extra/yassl/taocrypt/src/des.cpp index 5cffeaea9c91b..b52a83a38c608 100644 --- a/extra/yassl/taocrypt/src/des.cpp +++ b/extra/yassl/taocrypt/src/des.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -473,7 +474,7 @@ void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, uses ecx */ -#define AsmIPERM() {\ +#define AsmIPERM() \ AS2( rol ebx, 4 ) \ AS2( mov ecx, eax ) \ AS2( xor ecx, ebx ) \ @@ -504,7 +505,7 @@ void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, AS2( and ecx, 0xaaaaaaaa ) \ AS2( xor eax, ecx ) \ AS2( rol eax, 1 ) \ - AS2( xor ebx, ecx ) } + AS2( xor ebx, ecx ) /* Uses FPERM algorithm from above @@ -514,7 +515,7 @@ void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, uses ecx */ -#define AsmFPERM() {\ +#define AsmFPERM() \ AS2( ror ebx, 1 ) \ AS2( mov ecx, eax ) \ AS2( xor ecx, ebx ) \ @@ -545,7 +546,7 @@ void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, AS2( and ecx, 0xf0f0f0f0 ) \ AS2( xor eax, ecx ) \ AS2( xor ebx, ecx ) \ - AS2( ror eax, 4 ) } + AS2( ror eax, 4 ) @@ -641,32 +642,34 @@ void DES_EDE3::ProcessAndXorBlock(const byte* in, const byte* xOr, #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void DES_EDE3::AsmProcess(const byte* in, byte* out, void* box) const { #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); - - asm(".intel_syntax noprefix"); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov edx, DWORD PTR [ebp + 8] ) \ - AS2( mov esi, DWORD PTR [ebp + 12] ) \ - AS2( mov ebp, DWORD PTR [ebp + 20] ) - - // ebp restored at end - #define EPILOG() \ - AS2( movd edi, mm3 ) \ - AS2( movd ebx, mm4 ) \ - AS2( movd esi, mm5 ) \ - AS1( emms ) \ - asm(".att_syntax"); + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm6, ebp;" \ + "movd mm7, ecx;" \ + "mov ebp, eax;" + #define EPILOG() \ + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "d" (this), "S" (in), "a" (box), "c" (out) \ + : "%edi", "memory", "cc" \ + ); #else #define AS1(x) __asm x @@ -756,7 +759,7 @@ void DES_EDE3::AsmProcess(const byte* in, byte* out, void* box) const AS1( bswap eax ) #ifdef __GNUC__ - AS2( mov esi, DWORD PTR [ebp + 16] ) // outBlock + AS2( movd esi, mm7 ) // outBlock #else AS2( mov esi, DWORD PTR [ebp + 12] ) // outBlock #endif diff --git a/extra/yassl/taocrypt/src/dh.cpp b/extra/yassl/taocrypt/src/dh.cpp index d6a61cfb1f39f..b7f1d7e6d4af2 100644 --- a/extra/yassl/taocrypt/src/dh.cpp +++ b/extra/yassl/taocrypt/src/dh.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/file.cpp b/extra/yassl/taocrypt/src/file.cpp index 88ead8e550e66..ab7a5c2b61b66 100644 --- a/extra/yassl/taocrypt/src/file.cpp +++ b/extra/yassl/taocrypt/src/file.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp index 8dccf1a13409d..369df27ae1e33 100644 --- a/extra/yassl/taocrypt/src/integer.cpp +++ b/extra/yassl/taocrypt/src/integer.cpp @@ -55,7 +55,9 @@ #include #endif #elif defined(_MSC_VER) && defined(_M_IX86) - #pragma message("You do not seem to have the Visual C++ Processor Pack ") +/* #pragma message("You do not seem to have the Visual C++ Processor Pack ") + #pragma message("installed, so use of SSE2 intrinsics will be disabled.") +*/ #pragma message("installed, so use of SSE2 intrinsics will be disabled.") #elif defined(__GNUC__) && defined(__i386__) /* #warning You do not have GCC 3.3 or later, or did not specify the -msse2 \ @@ -73,7 +75,7 @@ template CPP_TYPENAME AlignedAllocator::pointer AlignedAllocator::allocate( size_type n, const void *) { - if (n > max_size()) + if (n > this->max_size()) return 0; if (n == 0) return 0; diff --git a/extra/yassl/taocrypt/src/md2.cpp b/extra/yassl/taocrypt/src/md2.cpp index b835e245718ec..aefe30452799d 100644 --- a/extra/yassl/taocrypt/src/md2.cpp +++ b/extra/yassl/taocrypt/src/md2.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/md5.cpp b/extra/yassl/taocrypt/src/md5.cpp index ee0d64acc17b7..e9a9e8fe51743 100644 --- a/extra/yassl/taocrypt/src/md5.cpp +++ b/extra/yassl/taocrypt/src/md5.cpp @@ -223,32 +223,32 @@ void MD5::Update(const byte* data, word32 len) #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void MD5::AsmTransform(const byte* data, word32 times) { #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov edi, DWORD PTR [ebp + 12] ) \ - AS2( mov eax, DWORD PTR [ebp + 16] ) - + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" #define EPILOG() \ - AS2( movd ebp, mm6 ) \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( mov esp, ebp ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "a" (times) \ + : "%esi", "%edx", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -294,7 +294,11 @@ void MD5::AsmTransform(const byte* data, word32 times) AS2( mov ecx, [esi + 8] ) // c AS2( mov edx, [esi + 12] ) // d -AS1(loopStart:) +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif // set up AS2( mov esi, ecx ) @@ -389,7 +393,11 @@ AS1(loopStart:) AS2( movd ebp, mm2 ) // times AS1( dec ebp ) AS2( movd mm2, ebp ) - AS1( jnz loopStart ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif EPILOG() diff --git a/extra/yassl/taocrypt/src/rabbit.cpp b/extra/yassl/taocrypt/src/rabbit.cpp index 071a25191f8b6..89e6a207a1b0c 100644 --- a/extra/yassl/taocrypt/src/rabbit.cpp +++ b/extra/yassl/taocrypt/src/rabbit.cpp @@ -198,7 +198,6 @@ void Rabbit::Process(byte* output, const byte* input, word32 msglen) { /* Temporary variables */ word32 i; - byte buffer[16]; /* Encrypt/decrypt all full blocks */ while (msglen >= 16) { @@ -227,17 +226,23 @@ void Rabbit::Process(byte* output, const byte* input, word32 msglen) /* Encrypt/decrypt remaining data */ if (msglen) { + + word32 tmp[4]; + byte* buffer = (byte*)tmp; + + memset(tmp, 0, sizeof(tmp)); /* help static analysis */ + /* Iterate the system */ NextState(Work); /* Generate 16 bytes of pseudo-random data */ - *(word32*)(buffer+ 0) = LITTLE32(workCtx_.x[0] ^ + tmp[0] = LITTLE32(workCtx_.x[0] ^ (workCtx_.x[5]>>16) ^ U32V(workCtx_.x[3]<<16)); - *(word32*)(buffer+ 4) = LITTLE32(workCtx_.x[2] ^ + tmp[1] = LITTLE32(workCtx_.x[2] ^ (workCtx_.x[7]>>16) ^ U32V(workCtx_.x[5]<<16)); - *(word32*)(buffer+ 8) = LITTLE32(workCtx_.x[4] ^ + tmp[2] = LITTLE32(workCtx_.x[4] ^ (workCtx_.x[1]>>16) ^ U32V(workCtx_.x[7]<<16)); - *(word32*)(buffer+12) = LITTLE32(workCtx_.x[6] ^ + tmp[3] = LITTLE32(workCtx_.x[6] ^ (workCtx_.x[3]>>16) ^ U32V(workCtx_.x[1]<<16)); /* Encrypt/decrypt the data */ diff --git a/extra/yassl/taocrypt/src/ripemd.cpp b/extra/yassl/taocrypt/src/ripemd.cpp index f77010ca94d6f..b670a9eca8603 100644 --- a/extra/yassl/taocrypt/src/ripemd.cpp +++ b/extra/yassl/taocrypt/src/ripemd.cpp @@ -511,27 +511,26 @@ void RIPEMD160::Transform() void RIPEMD160::AsmTransform(const byte* data, word32 times) { #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov edi, DWORD PTR [ebp + 12] ) \ - AS2( mov edx, DWORD PTR [ebp + 16] ) + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" #define EPILOG() \ - AS2( movd ebp, mm6 ) \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( mov esp, ebp ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "d" (times) \ + : "%esi", "%eax", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -569,7 +568,11 @@ void RIPEMD160::AsmTransform(const byte* data, word32 times) AS2( sub esp, 24 ) // make room for tmp a1 - e1 AS2( movd mm1, esi ) // store digest_ -AS1( loopStart: ) +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif AS2( movd mm2, edx ) // store times_ @@ -821,8 +824,14 @@ AS1( loopStart: ) AS2( movd edx, mm2 ) // times AS2( movd edi, mm0 ) // data, already advanced AS1( dec edx ) - AS1( jnz loopStart ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + // inline adjust + AS2( add esp, 24 ) // fix room on stack EPILOG() } diff --git a/extra/yassl/taocrypt/src/sha.cpp b/extra/yassl/taocrypt/src/sha.cpp index f67a4f550672e..0d3491eb83d2e 100644 --- a/extra/yassl/taocrypt/src/sha.cpp +++ b/extra/yassl/taocrypt/src/sha.cpp @@ -760,32 +760,33 @@ void SHA384::Transform() #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void SHA::AsmTransform(const byte* data, word32 times) { #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov ecx, DWORD PTR [ebp + 8] ) \ - AS2( mov edi, DWORD PTR [ebp + 12] ) \ - AS2( mov eax, DWORD PTR [ebp + 16] ) + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" #define EPILOG() \ - AS2( movd ebp, mm6 ) \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( mov esp, ebp ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "c" (this), "D" (data), "a" (times) \ + : "%esi", "%edx", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -826,7 +827,11 @@ void SHA::AsmTransform(const byte* data, word32 times) AS2( sub esp, 68 ) // make room on stack -AS1( loopStart: ) +#ifdef _MSC_VER + AS1( loopStart: ) // loopStart +#else + AS1( 0: ) // loopStart for some gas (need numeric for jump back +#endif // byte reverse 16 words of input, 4 at a time, put on stack for W[] @@ -1011,8 +1016,14 @@ AS1( loopStart: ) AS1( dec ebp ) AS2( movd mm2, ebp ) - AS1( jnz loopStart ) +#ifdef _MSC_VER + AS1( jnz loopStart ) // loopStart +#else + AS1( jnz 0b ) // loopStart +#endif + // inline adjust + AS2( add esp, 68 ) // fix room on stack EPILOG() } diff --git a/extra/yassl/taocrypt/src/tftables.cpp b/extra/yassl/taocrypt/src/tftables.cpp index 6917507b8b2fe..bf9be335b5257 100644 --- a/extra/yassl/taocrypt/src/tftables.cpp +++ b/extra/yassl/taocrypt/src/tftables.cpp @@ -1,5 +1,6 @@ /* Copyright (C) 2000-2007 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/twofish.cpp b/extra/yassl/taocrypt/src/twofish.cpp index bf57f5dde4496..69699de07139c 100644 --- a/extra/yassl/taocrypt/src/twofish.cpp +++ b/extra/yassl/taocrypt/src/twofish.cpp @@ -54,9 +54,8 @@ void Twofish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else if (mode_ == CBC) - { - if (dir_ == ENCRYPTION) + else if (mode_ == CBC) { + if (dir_ == ENCRYPTION) { while (blocks--) { r_[0] ^= *(word32*)in; r_[1] ^= *(word32*)(in + 4); @@ -69,7 +68,8 @@ void Twofish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } - else + } + else { while (blocks--) { AsmDecrypt(in, out); @@ -83,6 +83,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz) out += BLOCK_SIZE; in += BLOCK_SIZE; } + } } } @@ -273,25 +274,28 @@ void Twofish::decrypt(const byte* inBlock, const byte* xorBlock, #if defined(DO_TWOFISH_ASM) #ifdef __GNUC__ - #define AS1(x) asm(#x); - #define AS2(x, y) asm(#x ", " #y); + #define AS1(x) #x ";" + #define AS2(x, y) #x ", " #y ";" #define PROLOG() \ - asm(".intel_syntax noprefix"); \ - AS2( movd mm3, edi ) \ - AS2( movd mm4, ebx ) \ - AS2( movd mm5, esi ) \ - AS2( movd mm6, ebp ) \ - AS2( mov edi, DWORD PTR [ebp + 8] ) \ - AS2( mov esi, DWORD PTR [ebp + 12] ) + __asm__ __volatile__ \ + ( \ + ".intel_syntax noprefix;" \ + "push ebx;" \ + "push ebp;" \ + "movd mm3, eax;" \ + "movd mm6, ebp;" #define EPILOG() \ - AS2( movd esp, mm6 ) \ - AS2( movd esi, mm5 ) \ - AS2( movd ebx, mm4 ) \ - AS2( movd edi, mm3 ) \ - AS1( emms ) \ - asm(".att_syntax"); + "pop ebp;" \ + "pop ebx;" \ + "emms;" \ + ".att_syntax;" \ + : \ + : "D" (this), "S" (inBlock), "a" (outBlock) \ + : "%ecx", "%edx", "memory", "cc" \ + ); + #else #define AS1(x) __asm x #define AS2(x, y) __asm x, y @@ -425,6 +429,8 @@ void Twofish::decrypt(const byte* inBlock, const byte* xorBlock, #ifdef _MSC_VER __declspec(naked) +#else + __attribute__ ((noinline)) #endif void Twofish::AsmEncrypt(const byte* inBlock, byte* outBlock) const { @@ -473,7 +479,7 @@ void Twofish::AsmEncrypt(const byte* inBlock, byte* outBlock) const AS2( movd ebp, mm6 ) AS2( movd esi, mm0 ) // k_ #ifdef __GNUC__ - AS2( mov edi, [ebp + 16] ) // outBlock + AS2( movd edi, mm3 ) // outBlock #else AS2( mov edi, [ebp + 12] ) // outBlock #endif @@ -494,7 +500,9 @@ void Twofish::AsmEncrypt(const byte* inBlock, byte* outBlock) const #ifdef _MSC_VER - __declspec(naked) + __declspec(naked) +#else + __attribute__ ((noinline)) #endif void Twofish::AsmDecrypt(const byte* inBlock, byte* outBlock) const { @@ -543,7 +551,7 @@ void Twofish::AsmDecrypt(const byte* inBlock, byte* outBlock) const AS2( movd ebp, mm6 ) AS2( movd esi, mm0 ) // k_ #ifdef __GNUC__ - AS2( mov edi, [ebp + 16] ) // outBlock + AS2( movd edi, mm3 ) // outBlock #else AS2( mov edi, [ebp + 12] ) // outBlock #endif diff --git a/extra/yassl/taocrypt/test/test.cpp b/extra/yassl/taocrypt/test/test.cpp index 00547d0f9636b..c23d981924d8a 100644 --- a/extra/yassl/taocrypt/test/test.cpp +++ b/extra/yassl/taocrypt/test/test.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2012, Oracle and/or its affiliates. + Copyright (c) 2006, 2014, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1169,12 +1169,12 @@ int rsa_test() RSAES_Encryptor enc(priv); byte message[] = "Everyone gets Friday off."; const word32 len = (word32)strlen((char*)message); - byte cipher[64]; + byte cipher[512]; enc.Encrypt(message, len, cipher, rng); RSAES_Decryptor dec(priv); - byte plain[64]; - dec.Decrypt(cipher, sizeof(plain), plain, rng); + byte plain[512]; + dec.Decrypt(cipher, priv.FixedCiphertextLength(), plain, rng); if (memcmp(plain, message, len)) return -70; @@ -1246,11 +1246,11 @@ int dh_test() int dsa_test() { Source source; - FileSource("../certs/dsa512.der", source); + FileSource("../certs/dsa1024.der", source); if (source.size() == 0) { - FileSource("../../certs/dsa512.der", source); // for testsuite + FileSource("../../certs/dsa1024.der", source); // for testsuite if (source.size() == 0) { - FileSource("../../../certs/dsa512.der", source); // win32 Debug dir + FileSource("../../../certs/dsa1024.der", source); // win32 Debug dir if (source.size() == 0) err_sys("where's your certs dir?", -89); } diff --git a/include/my_base.h b/include/my_base.h index cc056bffa70bc..cdf8e1890310c 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -501,7 +501,8 @@ enum ha_base_keytype { #define HA_ERR_ABORTED_BY_USER 188 #define HA_ERR_DISK_FULL 189 #define HA_ERR_INCOMPATIBLE_DEFINITION 190 -#define HA_ERR_LAST 190 /* Copy of last error nr */ +#define HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE 191 /* Too many words in a phrase */ +#define HA_ERR_LAST 191 /* Copy of last error nr */ /* Number of different errors */ #define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) diff --git a/include/my_handler_errors.h b/include/my_handler_errors.h index 76b6b1aa60d3b..a7afcfe93a3a3 100644 --- a/include/my_handler_errors.h +++ b/include/my_handler_errors.h @@ -93,7 +93,8 @@ static const char *handler_error_messages[]= "Row is not visible by the current transaction", "Operation was interrupted by end user (probably kill command?)", "Disk full", - "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump and restore the table to fix this" + "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump and restore the table to fix this", + "Too many words in a FTS phrase or proximity search" }; #endif /* MYSYS_MY_HANDLER_ERRORS_INCLUDED */ diff --git a/include/mysql/psi/mysql_file.h b/include/mysql/psi/mysql_file.h index c226258f46280..c839b2b019bbb 100644 --- a/include/mysql/psi/mysql_file.h +++ b/include/mysql/psi/mysql_file.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/mysql/psi/mysql_idle.h b/include/mysql/psi/mysql_idle.h index c53d0ceb8c705..5c72b715b7a21 100644 --- a/include/mysql/psi/mysql_idle.h +++ b/include/mysql/psi/mysql_idle.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/mysql/psi/mysql_stage.h b/include/mysql/psi/mysql_stage.h index 61bfdbb7d5976..91a5c12f82ec5 100644 --- a/include/mysql/psi/mysql_stage.h +++ b/include/mysql/psi/mysql_stage.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/mysql/psi/mysql_thread.h b/include/mysql/psi/mysql_thread.h index 7a70503e1622d..08dfeac37f150 100644 --- a/include/mysql/psi/mysql_thread.h +++ b/include/mysql/psi/mysql_thread.h @@ -66,7 +66,6 @@ An instrumented mutex structure. @sa mysql_mutex_t */ - struct st_mysql_mutex { /** The real mutex. */ @@ -97,15 +96,6 @@ struct st_mysql_mutex */ typedef struct st_mysql_mutex mysql_mutex_t; -/* How to access the pthread_mutex in mysql_mutex_t */ -#ifdef SAFE_MUTEX -#define mysql_mutex_real_mutex(A) &(A)->m_mutex.mutex -#elif defined(MY_PTHREAD_FASTMUTEX) -#define mysql_mutex_real_mutex(A) &(A)->m_mutex.mutex -#else -#define mysql_mutex_real_mutex(A) &(A)->m_mutex -#endif - /** An instrumented rwlock structure. @sa mysql_rwlock_t diff --git a/include/mysql/psi/psi.h b/include/mysql/psi/psi.h index d6c2524270726..30f2709be0f62 100644 --- a/include/mysql/psi/psi.h +++ b/include/mysql/psi/psi.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1372,7 +1372,7 @@ typedef void (*set_thread_state_v1_t)(const char* state); @param info the process into string @param info_len the process into string length */ -typedef void (*set_thread_info_v1_t)(const char* info, int info_len); +typedef void (*set_thread_info_v1_t)(const char* info, uint info_len); /** Attach a thread instrumentation to the running thread. @@ -1921,7 +1921,6 @@ typedef struct PSI_digest_locker* (*digest_add_token_v1_t) typedef int (*set_thread_connect_attrs_v1_t)(const char *buffer, uint length, const void *from_cs); - /** Performance Schema Interface, version 1. @since PSI_VERSION_1 diff --git a/include/mysql/psi/psi_abi_v1.h.pp b/include/mysql/psi/psi_abi_v1.h.pp index f2037c5b724a3..fa2bf724b5e64 100644 --- a/include/mysql/psi/psi_abi_v1.h.pp +++ b/include/mysql/psi/psi_abi_v1.h.pp @@ -357,7 +357,7 @@ typedef void (*set_thread_command_v1_t)(int command); typedef void (*set_thread_start_time_v1_t)(time_t start_time); typedef void (*set_thread_state_v1_t)(const char* state); -typedef void (*set_thread_info_v1_t)(const char* info, int info_len); +typedef void (*set_thread_info_v1_t)(const char* info, uint info_len); typedef void (*set_thread_v1_t)(struct PSI_thread *thread); typedef void (*delete_current_thread_v1_t)(void); typedef void (*delete_thread_v1_t)(struct PSI_thread *thread); diff --git a/include/mysql_com.h b/include/mysql_com.h index be1d222eb0795..9486bd3ebb73c 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -111,7 +111,7 @@ enum enum_server_command #define MYSQL_TYPE_VIRTUAL 245 /* Length of random string sent by server on handshake; this is also length of - obfuscated password, recieved from client + obfuscated password, received from client */ #define SCRAMBLE_LENGTH 20 #define SCRAMBLE_LENGTH_323 8 diff --git a/include/mysql_version.h.in b/include/mysql_version.h.in index 56b2fe50ec0f5..cceb4e984c727 100644 --- a/include/mysql_version.h.in +++ b/include/mysql_version.h.in @@ -1,6 +1,7 @@ -/* Copyright (c) 1996, 1999-2004, 2007 MySQL AB - Use is subject to license terms - This file is public domain and comes with NO WARRANTY of any kind */ +/* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB + & Detron HB, 1996, 1999-2004, 2007 MySQL AB. + This file is public domain and comes with NO WARRANTY of any kind +*/ /* Version numbers for protocol & mysqld */ diff --git a/include/t_ctype.h b/include/t_ctype.h index 162adc7531c08..7db3b7bbf71fe 100644 --- a/include/t_ctype.h +++ b/include/t_ctype.h @@ -1,4 +1,5 @@ /* Copyright (C) 2000 MySQL AB + Use is subject to license terms This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 737840fbab79b..9ed89c5e08170 100644 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -139,6 +139,10 @@ my_print_help SET(CLIENT_API_FUNCTIONS_5_5 mysql_stmt_next_result +# Charsets +my_charset_bin +my_charset_latin1 +my_charset_utf8_general_ci # Client plugins mysql_client_find_plugin mysql_client_register_plugin diff --git a/libmysql/errmsg.c b/libmysql/errmsg.c index 9985fa2233c10..0517be9bdeead 100644 --- a/libmysql/errmsg.c +++ b/libmysql/errmsg.c @@ -81,7 +81,7 @@ const char *client_errors[]= "Attempt to read a row while there is no result set associated with the statement", "This feature is not implemented yet", "Lost connection to MySQL server at '%s', system error: %M", - "Statement closed indirectly because of a preceeding %s() call", + "Statement closed indirectly because of a preceding %s() call", "The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again", "This handle is already connected. Use a separate handle for each connection.", "Authentication plugin '%s' cannot be loaded: %s", diff --git a/libmysqld/emb_qcache.cc b/libmysqld/emb_qcache.cc index f1e850f4218ea..ccdfaf286eb2c 100644 --- a/libmysqld/emb_qcache.cc +++ b/libmysqld/emb_qcache.cc @@ -316,7 +316,8 @@ uint emb_count_querycache_size(THD *thd) result+= field->def_length; } - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->get_command() == COM_STMT_EXECUTE) { result+= (uint) (4*n_rows); for (; cur_row; cur_row=cur_row->next) @@ -379,7 +380,8 @@ void emb_store_querycache_result(Querycache_stream *dst, THD *thd) dst->store_safe_str(field->def, field->def_length); } - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->get_command() == COM_STMT_EXECUTE) { for (; cur_row; cur_row=cur_row->next) dst->store_str((char *) cur_row->data, cur_row->length); @@ -447,7 +449,8 @@ int emb_load_querycache_result(THD *thd, Querycache_stream *src) data->rows= rows; if (!rows) goto return_ok; - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->get_command() == COM_STMT_EXECUTE) { uint length; row= (MYSQL_ROWS *)alloc_root(&data->alloc, diff --git a/libmysqld/examples/test-run b/libmysqld/examples/test-run index 9db0f20cb8271..3b1cff2ddd8e8 100755 --- a/libmysqld/examples/test-run +++ b/libmysqld/examples/test-run @@ -1,6 +1,7 @@ #! /bin/sh # Copyright (C) 2001, 2006 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 1c043c6d03b60..9024ae9321e08 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -40,6 +40,7 @@ C_MODE_START extern unsigned int mysql_server_last_errno; extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; static my_bool emb_read_query_result(MYSQL *mysql); +static void emb_free_embedded_thd(MYSQL *mysql); extern "C" void unireg_clear(int exit_code) @@ -107,6 +108,17 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, NET *net= &mysql->net; my_bool stmt_skip= stmt ? stmt->state != MYSQL_STMT_INIT_DONE : FALSE; + if (thd->killed != NOT_KILLED) + { + if (thd->killed < KILL_CONNECTION) + thd->killed= NOT_KILLED; + else + { + emb_free_embedded_thd(mysql); + thd= 0; + } + } + if (!thd) { /* Do "reconnect" if possible */ @@ -1286,7 +1298,7 @@ bool Protocol::net_store_data(const uchar *from, size_t length) } -bool Protocol::net_store_data(const uchar *from, size_t length, +bool Protocol::net_store_data_cs(const uchar *from, size_t length, CHARSET_INFO *from_cs, CHARSET_INFO *to_cs) { uint conv_length= to_cs->mbmaxlen * length / from_cs->mbminlen; diff --git a/man/mysql-test-run.pl.1 b/man/mysql-test-run.pl.1 index ebf17746b68f1..20abc250b159f 100644 --- a/man/mysql-test-run.pl.1 +++ b/man/mysql-test-run.pl.1 @@ -332,7 +332,7 @@ is defined so that can invoke itself with exec $MYSQL_TEST\&. .PP -Other tests may refer to the last three variables listed in the preceeding table, to locate files to read or write\&. For example, tests that need to create files will typically put them in +Other tests may refer to the last three variables listed in the preceding table, to locate files to read or write\&. For example, tests that need to create files will typically put them in $MYSQL_TMP_DIR/\fIfile_name\fR\&. .PP If you are running diff --git a/mysql-test/collections/default.weekly b/mysql-test/collections/default.weekly old mode 100755 new mode 100644 diff --git a/mysql-test/extra/rpl_tests/rpl_ddl.test b/mysql-test/extra/rpl_tests/rpl_ddl.test index 32fc10479b80b..8c35ff974d8eb 100644 --- a/mysql-test/extra/rpl_tests/rpl_ddl.test +++ b/mysql-test/extra/rpl_tests/rpl_ddl.test @@ -98,8 +98,8 @@ # --> less switching of AUTOCOMMIT mode on master side. # # 4. Never use a test object, which was direct or indirect affected by a -# preceeding test sequence again. -# If one preceeding test sequence hits a (sometimes not visible, +# preceding test sequence again. +# If one preceding test sequence hits a (sometimes not visible, # because the sql error code of the statement might be 0) bug # and these rules are ignored, a following test sequence might earn ugly # effects like failing 'sync_slave_with_master', crashes of the slave or diff --git a/mysql-test/extra/rpl_tests/rpl_row_basic.test b/mysql-test/extra/rpl_tests/rpl_row_basic.test index f2ef0eda4f511..8ce45505c46ae 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_basic.test +++ b/mysql-test/extra/rpl_tests/rpl_row_basic.test @@ -221,7 +221,7 @@ INSERT INTO t7 VALUES (1,3), (2,6), (3,9); SELECT * FROM t7 ORDER BY C1; # since bug#31552/31609 idempotency is not default any longer. In order -# the preceeding test INSERT INTO t7 to pass the mode is switched +# the preceding test INSERT INTO t7 to pass the mode is switched # temprorarily set @@global.slave_exec_mode= 'IDEMPOTENT'; @@ -260,7 +260,7 @@ INSERT INTO t8 VALUES (1,2,3), (2,4,6), (3,6,9); SELECT * FROM t8 ORDER BY a; # since bug#31552/31609 idempotency is not default any longer. In order -# the preceeding test INSERT INTO t8 to pass the mode is switched +# the preceding test INSERT INTO t8 to pass the mode is switched # temprorarily set @@global.slave_exec_mode= 'IDEMPOTENT'; diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc index 7d92c3c7b8fb5..4cb0459967941 100644 --- a/mysql-test/include/ctype_common.inc +++ b/mysql-test/include/ctype_common.inc @@ -64,6 +64,14 @@ select a sounds like a from t1; select 1 from t1 order by cast(a as char(1)); drop table t1; +--echo # +--echo # MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +--echo # +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; + # # Bug#27580 SPACE() function collation bug? # diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc index a6b5c820783d7..9e59f54a8b39e 100644 --- a/mysql-test/include/ctype_numconv.inc +++ b/mysql-test/include/ctype_numconv.inc @@ -1818,6 +1818,17 @@ SELECT f1() FROM t1 LEFT JOIN (SELECT 1 AS a FROM t1 LIMIT 0) AS d ON 1 GROUP BY DROP FUNCTION f1; DROP TABLE t1; +--echo # +--echo # MDEV-5702 Incorrect results are returned with NULLIF() +--echo # +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + + SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); diff --git a/mysql-test/include/default_my.cnf b/mysql-test/include/default_my.cnf index ef7e9f60dd702..6b0493cdb0841 100644 --- a/mysql-test/include/default_my.cnf +++ b/mysql-test/include/default_my.cnf @@ -1,4 +1,5 @@ # Copyright (c) 2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc. +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/include/have_innodb.combinations b/mysql-test/include/have_innodb.combinations index f647f15ddb628..5b8d376d1b9f5 100644 --- a/mysql-test/include/have_innodb.combinations +++ b/mysql-test/include/have_innodb.combinations @@ -9,6 +9,7 @@ innodb-buffer-page innodb-buffer-page-lru innodb-sys-foreign innodb-sys-foreign-col +innodb-sys-tables innodb-metrics [xtradb_plugin] @@ -22,6 +23,7 @@ innodb-buffer-page innodb-buffer-page-lru innodb-sys-foreign innodb-sys-foreign-col +innodb-sys-tables innodb-metrics [xtradb] @@ -34,4 +36,5 @@ innodb-buffer-page innodb-buffer-page-lru innodb-sys-foreign innodb-sys-foreign-col +innodb-sys-tables innodb-metrics diff --git a/mysql-test/include/have_perfschema.inc b/mysql-test/include/have_perfschema.inc index 6b558e07c202d..d932ce0f9bdd0 100644 --- a/mysql-test/include/have_perfschema.inc +++ b/mysql-test/include/have_perfschema.inc @@ -1,4 +1,5 @@ # Copyright (C) 2010 Sun Microsystems, Inc. +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/include/wait_until_count_sessions.inc b/mysql-test/include/wait_until_count_sessions.inc index 26b0d8f2633a6..245fb68b5c3a2 100644 --- a/mysql-test/include/wait_until_count_sessions.inc +++ b/mysql-test/include/wait_until_count_sessions.inc @@ -10,7 +10,7 @@ # 1. We wait for $current_sessions <= $count_sessions because in the use case # with count_sessions.inc before and wait_until_count_sessions.inc after # the core of the test it could happen that the disconnects of sessions -# belonging to the preceeding test are not finished. +# belonging to the preceding test are not finished. # sessions at test begin($count_sessions) = m + n # sessions of the previous test which will be soon disconnected = n (n >= 0) # sessions at test end ($current sessions, assuming the test disconnects diff --git a/mysql-test/lib/mtr_match.pm b/mysql-test/lib/mtr_match.pm index 6fc9832ac43ec..140885b62738a 100644 --- a/mysql-test/lib/mtr_match.pm +++ b/mysql-test/lib/mtr_match.pm @@ -1,5 +1,6 @@ # -*- cperl -*- # Copyright (C) 2004-2008 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 8a51846317ffb..e8c41fd7b2334 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl # -*- cperl -*- -# Copyright (c) 2004, 2013, Oracle and/or its affiliates. -# Copyright (c) 2009, 2013, Monty Program Ab +# Copyright (c) 2004, 2014, Oracle and/or its affiliates. +# Copyright (c) 2009, 2014, Monty Program Ab # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -481,7 +481,6 @@ sub main { ); mtr_error("Could not create testcase server port: $!") unless $server; my $server_port = $server->sockport(); - mtr_report("Using server port $server_port"); if ($opt_resfile) { resfile_init("$opt_vardir/mtr-results.txt"); @@ -525,15 +524,17 @@ sub main { # Send Ctrl-C to any children still running kill("INT", keys(%children)); - # Wait for childs to exit - foreach my $pid (keys %children) - { - my $ret_pid= waitpid($pid, 0); - if ($ret_pid != $pid){ - mtr_report("Unknown process $ret_pid exited"); - } - else { - delete $children{$ret_pid}; + if (!IS_WINDOWS) { + # Wait for children to exit + foreach my $pid (keys %children) + { + my $ret_pid= waitpid($pid, 0); + if ($ret_pid != $pid){ + mtr_report("Unknown process $ret_pid exited"); + } + else { + delete $children{$ret_pid}; + } } } @@ -1871,22 +1872,9 @@ sub collect_mysqld_features { mtr_add_arg($args, "--lc-messages-dir=%s", $path_language); mtr_add_arg($args, "--skip-grant-tables"); mtr_add_arg($args, "--log-warnings=0"); - for (@opt_extra_mysqld_opt) { - mtr_add_arg($args, $_) unless /^--binlog-format\b/; - } - my $euid= $>; - if (!IS_WINDOWS and $euid == 0) { - mtr_add_arg($args, "--user=root"); - } mtr_add_arg($args, "--verbose"); mtr_add_arg($args, "--help"); - # Need --user=root if running as *nix root user - if (!IS_WINDOWS and $> == 0) - { - mtr_add_arg($args, "--user=root"); - } - my $exe_mysqld= find_mysqld($bindir); my $cmd= join(" ", $exe_mysqld, @$args); @@ -6537,7 +6525,7 @@ ($) start-dirty Only start the servers (without initialization) for the first specified test case user-args In combination with start* and no test name, drops - arguments to mysqld except those speficied with + arguments to mysqld except those specified with --mysqld (if any) wait-all If --start or --start-dirty option is used, wait for all servers to exit before finishing the process diff --git a/mysql-test/purify.supp b/mysql-test/purify.supp index 230dae201400f..0bb31d0027785 100644 --- a/mysql-test/purify.supp +++ b/mysql-test/purify.supp @@ -1,4 +1,5 @@ # Copyright (C) 2005, 2007 MySQL AB +# Use is subject to license terms # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index 207f6166fe07f..622023d0e7d12 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -1461,24 +1461,6 @@ t2 CREATE TABLE `t2` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; -# -# Bug#11938817 ALTER BEHAVIOR DIFFERENT THEN DOCUMENTED -# -DROP TABLE IF EXISTS t1; -CREATE TABLE t1(a INT) engine=innodb; -INSERT INTO t1 VALUES (1), (2); -# This should not do anything -ALTER TABLE t1; -affected rows: 0 -# Check that we rebuild the table -ALTER TABLE t1 engine=innodb; -affected rows: 2 -info: Records: 2 Duplicates: 0 Warnings: 0 -# This should also rebuild the table -ALTER TABLE t1 FORCE; -affected rows: 2 -info: Records: 2 Duplicates: 0 Warnings: 0 -DROP TABLE t1; # Bug#11748057 (formerly known as 34972): ALTER TABLE statement doesn't # identify correct column name. # @@ -1888,8 +1870,8 @@ ALTER TABLE tm1 DEFAULT CHARACTER SET utf8; affected rows: 2 info: Records: 2 Duplicates: 0 Warnings: 0 ALTER TABLE ti1 FORCE; -affected rows: 2 -info: Records: 2 Duplicates: 0 Warnings: 0 +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 ALTER TABLE tm1 FORCE; affected rows: 2 info: Records: 2 Duplicates: 0 Warnings: 0 diff --git a/mysql-test/r/alter_table_trans.result b/mysql-test/r/alter_table_trans.result index a2547708ada1b..eaae2039d4c9b 100644 --- a/mysql-test/r/alter_table_trans.result +++ b/mysql-test/r/alter_table_trans.result @@ -16,3 +16,11 @@ insert t1 values (repeat('3', 8193),3,1,1); ALTER TABLE t1 ADD PRIMARY KEY (col4(10)) , ADD UNIQUE KEY uidx (col3); ERROR 23000: Duplicate entry '1' for key 'uidx' DROP TABLE t1; +CREATE TABLE t1 (a INT) ENGINE = InnoDB; +INSERT INTO t1 VALUES (2); +ALTER TABLE t1 ADD PRIMARY KEY (a); +ALTER TABLE t1 DROP PRIMARY KEY; +INSERT INTO t1 VALUES (2); +ALTER TABLE t1 ADD PRIMARY KEY (a); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +DROP TABLE t1; diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result index bff5b5a250e5b..48bc1dab3a794 100644 --- a/mysql-test/r/ctype_big5.result +++ b/mysql-test/r/ctype_big5.result @@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +big5_chinese_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_binary.result b/mysql-test/r/ctype_binary.result index 3dfcaf18120ad..550c47ccdaa08 100644 --- a/mysql-test/r/ctype_binary.result +++ b/mysql-test/r/ctype_binary.result @@ -2886,6 +2886,23 @@ f1() 00:00:01 DROP FUNCTION f1; DROP TABLE t1; +# +# MDEV-5702 Incorrect results are returned with NULLIF() +# +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +d CAST(d AS CHAR) bad good +1999-11-11 1999-11-11 1999-11-11 1999-11-11 +2014-02-04 2014-02-04 2014-02-04 2014-02-04 +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `d` date DEFAULT NULL, + `bad` varbinary(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result index cb2122020b2bf..063cec289aba5 100644 --- a/mysql-test/r/ctype_cp1250_ch.result +++ b/mysql-test/r/ctype_cp1250_ch.result @@ -75,6 +75,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp1250_general_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), @@ -168,6 +177,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp1250_czech_cs .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result index 7030a77b6b262..f7952a18f58c2 100644 --- a/mysql-test/r/ctype_cp1251.result +++ b/mysql-test/r/ctype_cp1251.result @@ -3278,6 +3278,23 @@ f1() 00:00:01 DROP FUNCTION f1; DROP TABLE t1; +# +# MDEV-5702 Incorrect results are returned with NULLIF() +# +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +d CAST(d AS CHAR) bad good +1999-11-11 1999-11-11 1999-11-11 1999-11-11 +2014-02-04 2014-02-04 2014-02-04 2014-02-04 +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `d` date DEFAULT NULL, + `bad` varchar(10) CHARACTER SET cp1251 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); @@ -3303,5 +3320,15 @@ SELECT COALESCE(IF(test1=1, NULL, 1), test2) FROM t1; COALESCE(IF(test1=1, NULL, 1), test2) DROP TABLE t1; # +# MDEV-5459 Illegal mix of collations for datetime +# +SET NAMES cp1251; +CREATE TABLE t1 (dt DATETIME); +INSERT INTO t1 VALUES ('2014-01-02 10:20:30'); +SELECT date(dt) FROM t1 WHERE (CASE WHEN 1 THEN date(dt) ELSE null END >= '2013-12-01 00:00:00'); +date(dt) +2014-01-02 +DROP TABLE t1; +# # End of 5.5 tests # diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result index 92553aa4de633..dcb68cfe60b3d 100644 --- a/mysql-test/r/ctype_euckr.result +++ b/mysql-test/r/ctype_euckr.result @@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +euckr_korean_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result index af220466b9b36..1ab177e72c776 100644 --- a/mysql-test/r/ctype_gb2312.result +++ b/mysql-test/r/ctype_gb2312.result @@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +gb2312_chinese_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index f4d0136a34fd2..fd4941f9146e0 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +gbk_chinese_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index d21570fb05f3c..8beb60c368b27 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -308,6 +308,108 @@ select 'a' regexp 'A' collate latin1_general_cs; select 'a' regexp 'A' collate latin1_bin; 'a' regexp 'A' collate latin1_bin 0 +SET @test_character_set= 'latin1'; +SET @test_collation= 'latin1_swedish_ci'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) latin1_swedish_ci YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) latin1_swedish_ci YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +create table t1 (a set('a') not null); +insert into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +latin1_swedish_ci .wwwmysqlcom +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) DEFAULT NULL, + `level` smallint(5) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET collation_connection='latin1_swedish_ci'; create table t1 select repeat('a',4000) a; delete from t1; @@ -3460,6 +3562,23 @@ f1() 00:00:01 DROP FUNCTION f1; DROP TABLE t1; +# +# MDEV-5702 Incorrect results are returned with NULLIF() +# +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +d CAST(d AS CHAR) bad good +1999-11-11 1999-11-11 1999-11-11 1999-11-11 +2014-02-04 2014-02-04 2014-02-04 2014-02-04 +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `d` date DEFAULT NULL, + `bad` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index c14ad3e0db38d..c947689ef815e 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -5841,6 +5841,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +utf8_swedish_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index e36f783196eec..492c987791727 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +ucs2_general_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), @@ -4460,6 +4469,23 @@ f1() 00:00:01 DROP FUNCTION f1; DROP TABLE t1; +# +# MDEV-5702 Incorrect results are returned with NULLIF() +# +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +d CAST(d AS CHAR) bad good +1999-11-11 1999-11-11 1999-11-11 1999-11-11 +2014-02-04 2014-02-04 2014-02-04 2014-02-04 +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `d` date DEFAULT NULL, + `bad` varchar(10) CHARACTER SET ucs2 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); diff --git a/mysql-test/r/ctype_ucs2_query_cache.result b/mysql-test/r/ctype_ucs2_query_cache.result index c5f1ef5918d52..6f26bed02dad4 100644 --- a/mysql-test/r/ctype_ucs2_query_cache.result +++ b/mysql-test/r/ctype_ucs2_query_cache.result @@ -13,6 +13,12 @@ a 2 3 4 +SELECT * FROM t1; +a +1 +2 +3 +4 DROP TABLE t1; # # End of 5.5 tests diff --git a/mysql-test/r/ctype_utf16_uca.result b/mysql-test/r/ctype_utf16_uca.result index a59d3dc07ff62..e3ba73a904762 100644 --- a/mysql-test/r/ctype_utf16_uca.result +++ b/mysql-test/r/ctype_utf16_uca.result @@ -2826,6 +2826,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +utf16_swedish_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_utf32_uca.result b/mysql-test/r/ctype_utf32_uca.result index b77283f1ddb3f..d2032d401dff6 100644 --- a/mysql-test/r/ctype_utf32_uca.result +++ b/mysql-test/r/ctype_utf32_uca.result @@ -2826,6 +2826,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +utf32_swedish_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index b16d98a7a191a..a8aa4595ab40a 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -5337,6 +5337,23 @@ f1() 00:00:01 DROP FUNCTION f1; DROP TABLE t1; +# +# MDEV-5702 Incorrect results are returned with NULLIF() +# +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +d CAST(d AS CHAR) bad good +1999-11-11 1999-11-11 1999-11-11 1999-11-11 +2014-02-04 2014-02-04 2014-02-04 2014-02-04 +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `d` date DEFAULT NULL, + `bad` varchar(10) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; SET NAMES latin1; SET sql_mode=''; CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result index e6abd44c267ed..43f77629014bc 100644 --- a/mysql-test/r/fulltext.result +++ b/mysql-test/r/fulltext.result @@ -699,6 +699,51 @@ EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1; End of 5.1 tests +# +# Start of 5.5 tests +# +# +# MDEV-6146 Can't mix (latin1_swedish_ci,NUMERIC) and (utf8_unicode_ci,IMPLICIT) for MATCH +# +SET NAMES utf8; +CREATE TABLE t1 +( +txt text COLLATE utf8_unicode_ci NOT NULL, +uid int(11) NOT NULL, +id2 int(11) NOT NULL, +KEY uid (uid), +KEY id2 (id2) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +INSERT INTO t1 VALUES ('txt1',1234,5678); +SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('txt1' IN BOOLEAN MODE); +txt uid id2 +txt1 1234 5678 +SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('1234' IN BOOLEAN MODE); +txt uid id2 +txt1 1234 5678 +SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('5678' IN BOOLEAN MODE); +txt uid id2 +txt1 1234 5678 +DROP TABLE t1; +CREATE TABLE t1 ( +txt1 text COLLATE utf8_unicode_ci NOT NULL, +txt2 text COLLATE latin1_swedish_ci NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +INSERT INTO t1 VALUES ('nnn1 x1 y1 ööö1','mmm1 ùùù1'); +INSERT INTO t1 VALUES ('nnn2 x2 y2 ööö2','mmm2 ùùù2'); +INSERT INTO t1 VALUES ('nnn3 x3 y3 ööö3','mmm3 ùùù3'); +INSERT INTO t1 VALUES ('nnn4 x4 y4 ööö4','mmm4 ùùù4'); +INSERT INTO t1 VALUES ('nnn5 x5 y5 ööö5','mmm5 '); +SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ööö1' IN BOOLEAN MODE); +txt1 txt2 +nnn1 x1 y1 ööö1 mmm1 ùùù1 +SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ùùù2' IN BOOLEAN MODE); +txt1 txt2 +nnn2 x2 y2 ööö2 mmm2 ùùù2 +DROP TABLE t1; +# +# End of 5.5 tests +# CREATE TABLE t1 ( id int(11) auto_increment, title varchar(100) default '', diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index c9d7b6636c432..2f820dfc0a99a 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -119,7 +119,7 @@ substring_index('aaaaaaaaa1','aaa',-3) aaaaaa1 select substring_index('aaaaaaaaa1','aaa',-4); substring_index('aaaaaaaaa1','aaa',-4) - +aaaaaaaaa1 select substring_index('the king of thethe hill','the',-2); substring_index('the king of thethe hill','the',-2) the hill @@ -2659,6 +2659,35 @@ NULL NULL 8 drop table t1; End of 5.1 tests +# +# Start of 5.3 tests +# +# +# Bug#11829861: SUBSTRING_INDEX() RESULTS IN MISSING CHARACTERS WHEN USED +# INSIDE LOWER() +# +SET @user_at_host = 'root@mytinyhost-PC.local'; +SELECT LOWER(SUBSTRING_INDEX(@user_at_host, '@', -1)); +LOWER(SUBSTRING_INDEX(@user_at_host, '@', -1)) +mytinyhost-pc.local +# End of test BUG#11829861 +# +# Bug#42404: SUBSTRING_INDEX() RESULTS ARE INCONSISTENT +# +CREATE TABLE t (i INT NOT NULL, c CHAR(255) NOT NULL); +INSERT INTO t VALUES (0,'.www.mysql.com'),(1,'.wwwmysqlcom'); +SELECT i, SUBSTRING_INDEX(c, '.', -2) FROM t WHERE i = 1; +i SUBSTRING_INDEX(c, '.', -2) +1 .wwwmysqlcom +SELECT i, SUBSTRING_INDEX(c, '.', -2) FROM t; +i SUBSTRING_INDEX(c, '.', -2) +0 mysql.com +1 .wwwmysqlcom +DROP TABLE t; +# End of test BUG#42404 +# +# End of 5.3 tests +# Start of 5.4 tests SELECT format(12345678901234567890.123, 3); format(12345678901234567890.123, 3) diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 9b86ccd264ee5..643849f36ed7a 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -2474,6 +2474,15 @@ v 2v,2v NULL 1c,2v,2v DROP TABLE t1,t2; # +# MDEV-6129: Server crashes during UNION with ORDER BY field IS NULL +# +SET sql_mode='ONLY_FULL_GROUP_BY'; +SELECT 1 AS test UNION SELECT 2 AS test ORDER BY test IS NULL ASC; +test +1 +2 +SET sql_mode=''; +# # Bug #58782 # Missing rows with SELECT .. WHERE .. IN subquery # with full GROUP BY and no aggr diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result index 1f09ba6cef51f..99cc5d484bd26 100644 --- a/mysql-test/r/having.result +++ b/mysql-test/r/having.result @@ -638,6 +638,35 @@ set optimizer_switch=@save_optimizer_switch; drop table t1,t2,t3; End of 5.2 tests # +# Bug mdev-6116: an equality in the conjunction of HAVING +# and IN subquery in WHERE +# (The bug is caused by the same problem as bug mdev-5927) +# +CREATE TABLE t1 (f_key varchar(1), f_nokey varchar(1), INDEX(f_key)); +INSERT INTO t1 VALUES ('v','v'),('s','s'); +CREATE TABLE t2 (f_int int, f_key varchar(1), INDEX(f_key)); +INSERT INTO t2 VALUES +(4,'j'),(6,'v'),(3,'c'),(5,'m'),(3,'d'),(2,'d'),(2,'y'), +(9,'t'),(3,'d'),(8,'s'),(1,'r'),(8,'m'),(8,'b'),(5,'x'); +SELECT t2.f_int FROM t1 INNER JOIN t2 ON (t2.f_key = t1.f_nokey) +WHERE t1.f_nokey IN ( +SELECT t1.f_key FROM t1, t2 WHERE t1.f_key = t2.f_key +) HAVING t2.f_int >= 0 AND t2.f_int != 0; +f_int +6 +8 +DROP TABLE t1,t2; +# +# Bug mdev-5927: an equality in the conjunction of HAVING +# and an equality in WHERE +# +CREATE TABLE t1 (pk int PRIMARY KEY, f int NOT NULL, INDEX(f)); +INSERT INTO t1 VALUES (1,0), (2,8); +SELECT * FROM t1 WHERE f = 2 HAVING ( pk IN ( SELECT 9 ) AND f != 0 ); +pk f +DROP TABLE t1; +End of 5.3 tests +# # Bug mdev-5160: two-way join with HAVING over the second table # CREATE TABLE t1 (c1 varchar(6)) ENGINE=MyISAM; diff --git a/mysql-test/r/innodb_mysql_sync.result b/mysql-test/r/innodb_mysql_sync.result index 0fecadf6de523..21e9cd04c2236 100644 --- a/mysql-test/r/innodb_mysql_sync.result +++ b/mysql-test/r/innodb_mysql_sync.result @@ -359,3 +359,184 @@ Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecate SET DEBUG_SYNC= 'RESET'; DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; +# +#BUG#13975225:ONLINE OPTIMIZE TABLE FOR INNODB TABLES +# +SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue'; +#Setting up INNODB table. +CREATE TABLE t1(fld1 INT, fld2 INT, fld3 INT) ENGINE= INNODB; +INSERT INTO t1 VALUES (155, 45, 55); +#Concurrent INSERT, UPDATE, SELECT and DELETE is supported +#during OPTIMIZE TABLE operation for INNODB tables. +connection default; +#OPTIMIZE TABLE operation. +OPTIMIZE TABLE t1; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR downgraded'; +# With the patch, concurrent DML operation succeeds. +INSERT INTO t1 VALUES (10, 11, 12); +UPDATE t1 SET fld1= 20 WHERE fld1= 155; +DELETE FROM t1 WHERE fld1= 20; +SELECT * from t1; +fld1 fld2 fld3 +10 11 12 +SET DEBUG_SYNC= 'now SIGNAL continue'; +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +DROP TABLE t1; +SET DEBUG_SYNC= 'RESET'; +#Concurrent INSERT, UPDATE, SELECT and DELETE is supported +#during OPTIMIZE TABLE operation for Partitioned table. +SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue'; +#Setup PARTITIONED table. +CREATE TABLE t1(fld1 INT) ENGINE= INNODB PARTITION BY HASH(fld1) PARTITIONS 4; +INSERT INTO t1 VALUES(10); +#OPTIMIZE TABLE operation. +OPTIMIZE TABLE t1; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR downgraded'; +# With the patch, concurrent DML operation succeeds. +INSERT INTO t1 VALUES (30); +UPDATE t1 SET fld1= 20 WHERE fld1= 10; +DELETE FROM t1 WHERE fld1= 20; +SELECT * from t1; +fld1 +30 +SET DEBUG_SYNC= 'now SIGNAL continue'; +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +DROP TABLE t1; +SET DEBUG_SYNC= 'RESET'; +#ALTER TABLE FORCE and ALTER TABLE ENGINE uses online rebuild +#of the table. +CREATE TABLE t1(fld1 INT, fld2 INT) ENGINE=INNODB; +INSERT INTO t1 VALUES(10, 20); +ALTER TABLE t1 FORCE; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 ENGINE=INNODB; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +#ALTER TABLE FORCE, ALTER TABLE ENGINE and OPTIMIZE TABLE uses +#table copy when the old_alter_table enabled. +SET SESSION old_alter_table= TRUE; +affected rows: 0 +ALTER TABLE t1 FORCE; +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 ENGINE= INNODB; +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 0 +SET DEBUG_SYNC= 'alter_table_copy_after_lock_upgrade SIGNAL upgraded'; +affected rows: 0 +#OPTIMIZE TABLE operation using table copy. +OPTIMIZE TABLE t1; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR upgraded'; +affected rows: 0 +INSERT INTO t1 VALUES(10, 20); +affected rows: 1 +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +affected rows: 2 +SET DEBUG_SYNC= 'RESET'; +affected rows: 0 +SET SESSION old_alter_table= FALSE; +affected rows: 0 +#ALTER TABLE FORCE and ALTER TABLE ENGINE uses table copy +#when ALGORITHM COPY is used. +ALTER TABLE t1 FORCE, ALGORITHM= COPY; +affected rows: 2 +info: Records: 2 Duplicates: 0 Warnings: 0 +ALTER TABLE t1 ENGINE= INNODB, ALGORITHM= COPY; +affected rows: 2 +info: Records: 2 Duplicates: 0 Warnings: 0 +DROP TABLE t1; +#OPTIMIZE TABLE on a table with FULLTEXT index uses +#ALTER TABLE FORCE using COPY algorithm here. This +#test case ensures the COPY table debug sync point is hit. +SET DEBUG_SYNC= 'alter_table_copy_after_lock_upgrade SIGNAL upgraded'; +#Setup a table with FULLTEXT index. +connection default; +CREATE TABLE t1(fld1 CHAR(10), FULLTEXT(fld1)) ENGINE= INNODB; +INSERT INTO t1 VALUES("String1"); +#OPTIMIZE TABLE operation. +OPTIMIZE TABLE t1; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR upgraded'; +INSERT INTO t1 VALUES("String2"); +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +SET DEBUG_SYNC= 'RESET'; +DROP TABLE t1; +#Test which demonstrates that ALTER TABLE, OPTIMIZE PARTITION +#takes OPTIMIZE TABLE code path, hence does an online rebuild +#of the table with the patch. +connection default; +SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue'; +#Setup PARTITIONED table. +CREATE TABLE t1(fld1 INT) ENGINE= INNODB PARTITION BY HASH(fld1) PARTITIONS 4; +INSERT INTO t1 VALUES(10); +#OPTIMIZE ALL PARTITIONS operation. +ALTER TABLE t1 OPTIMIZE PARTITION ALL; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR downgraded'; +# With the patch, concurrent DML operation succeeds. +INSERT INTO t1 VALUES (30); +UPDATE t1 SET fld1= 20 WHERE fld1= 10; +DELETE FROM t1 WHERE fld1= 20; +SELECT * from t1; +fld1 +30 +SET DEBUG_SYNC= 'now SIGNAL continue'; +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed. +test.t1 optimize status OK +SET DEBUG_SYNC= 'RESET'; +#OPTIMIZE PER PARTITION operation. +SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue'; +ALTER TABLE t1 OPTIMIZE PARTITION p0; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR downgraded'; +# With the patch, concurrent DML operation succeeds. +INSERT INTO t1 VALUES (30); +UPDATE t1 SET fld1= 20 WHERE fld1= 10; +DELETE FROM t1 WHERE fld1= 20; +SELECT * from t1; +fld1 +30 +30 +SET DEBUG_SYNC= 'now SIGNAL continue'; +connection default; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed. +test.t1 optimize status OK +SET DEBUG_SYNC= 'RESET'; +# Test case for Bug#11938817 (ALTER BEHAVIOR DIFFERENT THEN DOCUMENTED). +# This should not do anything +ALTER TABLE t1; +affected rows: 0 +SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild'; +# Check that we rebuild the table +ALTER TABLE t1 engine=innodb; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR rebuild'; +connection default; +SET DEBUG_SYNC= 'RESET'; +SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild'; +# Check that we rebuild the table +ALTER TABLE t1 FORCE; +connection con1; +SET DEBUG_SYNC= 'now WAIT_FOR rebuild'; +connection default; +SET DEBUG_SYNC= 'RESET'; +DROP TABLE t1; diff --git a/mysql-test/r/mdl_sync.result b/mysql-test/r/mdl_sync.result index 990f074175b5f..206ad509e37f2 100644 --- a/mysql-test/r/mdl_sync.result +++ b/mysql-test/r/mdl_sync.result @@ -3086,18 +3086,17 @@ DELETE FROM t2 WHERE a = 3; # Now that DELETE blocks on a metadata lock, we should be able to do # SELECT * FROM m1 here. SELECT used to be blocked by a DELETE table # lock request. -SELECT * FROM m1; -a -1 -2 -3 -4 +SELECT * FROM m1 WHERE a < 3; # Resuming ALTER TABLE SET DEBUG_SYNC= 'now SIGNAL continue'; # Connection con1 # Reaping: ALTER TABLE m1 engine=MERGE UNION=(t2, t1) # Connection con2 # Reaping: DELETE FROM t2 WHERE a = 3 +# Reaping: SELECT * FROM m1 WHERE a < 3 +a +1 +2 # Connection default DROP TABLE m1, t1, t2; SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index 7fa9620f0e6ed..f701e7fa0852f 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -794,6 +794,35 @@ SELECT * FROM t2; col_int_key pk_1 pk_2 col_int 1 7 11 4 DROP TABLE t1,t2; +# +# MDEV-6139: UPDATE w/ join against MRG_MyISAM table with read-only +# sub-table fails +# MDEV-6193: Problems with multi-table updates that JOIN against +# read-only table +# +CREATE TABLE t1 ( +id int(10) unsigned, +a int(11) +) ENGINE=MyISAM; +CREATE TABLE t3 ( +id int(10) unsigned, +b int(11) +) ENGINE=MyISAM; +CREATE TABLE t2 ( +id int(10) unsigned, +b int(11) +) ENGINE=MRG_MyISAM UNION=(t3); +FLUSH TABLES; +update t1 join t2 using (id) set t1.a=t2.b; +create view v2 as select * from t2; +update t1 join v2 using (id) set t1.a=0; +create view v1 as select * from t3; +update t1 join v1 using (id) set t1.a=0; +update t1 join INFORMATION_SCHEMA.CHARACTER_SETS on (id=MAXLEN) set t1.a=0; +create view v3 as select t2.id, t3.b from t2 join t3 using(id); +update t1 join v3 using (id) set t1.a=0; +drop view v1, v2, v3; +drop table t2, t3, t1; end of 5.5 tests # Bug mdev-5970 diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result index 5abce8af9c94a..ba9ab47ea95d5 100644 --- a/mysql-test/r/mysqlcheck.result +++ b/mysql-test/r/mysqlcheck.result @@ -297,10 +297,7 @@ CHECK TABLE bug47205 FOR UPGRADE; Table Op Msg_type Msg_text test.bug47205 check error Table rebuild required. Please do "ALTER TABLE `bug47205` FORCE" or dump/reload to fix it! # ALTER TABLE ... FORCE should rebuild the table -# and therefore output "affected rows: 1" ALTER TABLE bug47205 FORCE; -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 # Table should now be ok CHECK TABLE bug47205 FOR UPGRADE; Table Op Msg_type Msg_text diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index f8ce0e3590425..822d4eb9ce1a3 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -683,7 +683,7 @@ The following options may be given as the first argument: plugins from a given library_file will be loaded. --plugin-load-add=name Optional semicolon-separated list of plugins to load. - This option adds to the list speficied by --plugin-load + This option adds to the list specified by --plugin-load in an incremental way. It can be specified many times, adding more plugins every time. --plugin-maturity=name @@ -756,7 +756,7 @@ The following options may be given as the first argument: --relay-log-space-limit=# Maximum space to use for all relay logs --replicate-annotate-row-events - Tells the slave to write annotate rows events recieved + Tells the slave to write annotate rows events received from the master to its own binary log. Ignored if log_slave_updates is not set --replicate-do-db=name @@ -1244,7 +1244,7 @@ performance-schema-max-rwlock-instances 1724 performance-schema-max-socket-classes 10 performance-schema-max-socket-instances 179 performance-schema-max-stage-classes 150 -performance-schema-max-statement-classes 179 +performance-schema-max-statement-classes 180 performance-schema-max-table-handles 445 performance-schema-max-table-instances 445 performance-schema-max-thread-classes 50 diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index 9dedbd1d1330b..4b0b3faf62917 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -5286,3 +5286,7 @@ drop table t1, t2; # # End of 5.1 tests # +Usage: mysqldump [OPTIONS] database [tables] +OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] +OR mysqldump [OPTIONS] --all-databases [OPTIONS] +For more options, use mysqldump --help diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result index e81eea6e8875f..5b0fbbcbe878a 100644 --- a/mysql-test/r/parser.result +++ b/mysql-test/r/parser.result @@ -618,3 +618,28 @@ DROP TABLE t1, t2, t3; # # End of 5.1 tests # +# +# Bug#17075846 : unquoted file names for variable values are +# accepted but parsed incorrectly +# +SET default_storage_engine=a.myisam; +ERROR 42000: Incorrect argument type to variable 'default_storage_engine' +SET default_storage_engine = .a.MyISAM; +ERROR 42000: Incorrect argument type to variable 'default_storage_engine' +SET default_storage_engine = a.b.MyISAM; +ERROR 42000: Incorrect argument type to variable 'default_storage_engine' +SET default_storage_engine = `a`.MyISAM; +ERROR 42000: Incorrect argument type to variable 'default_storage_engine' +SET default_storage_engine = `a`.`MyISAM`; +ERROR 42000: Incorrect argument type to variable 'default_storage_engine' +set default_storage_engine = "a.MYISAM"; +ERROR 42000: Unknown storage engine 'a.MYISAM' +set default_storage_engine = 'a.MYISAM'; +ERROR 42000: Unknown storage engine 'a.MYISAM' +set default_storage_engine = `a.MYISAM`; +ERROR 42000: Unknown storage engine 'a.MYISAM' +CREATE TABLE t1 (s VARCHAR(100)); +CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW +SET default_storage_engine = NEW.INNODB; +ERROR 42S22: Unknown column 'INNODB' in 'NEW' +DROP TABLE t1; diff --git a/mysql-test/r/plugin.result b/mysql-test/r/plugin.result index 54693eaee5669..630f0141d1843 100644 --- a/mysql-test/r/plugin.result +++ b/mysql-test/r/plugin.result @@ -42,16 +42,21 @@ SELECT * FROM t1; a set global example_ulong_var=500; set global example_enum_var= e1; +set session example_int_var= -1; show status like 'example%'; Variable_name Value -Example_func_example enum_var is 0, ulong_var is 500, double_var is 8.500000, really +Example_func_example enum_var is 0, ulong_var is 500, int_var is -1, double_var is 8.500000, really show variables like 'example%'; Variable_name Value example_double_thdvar 8.500000 example_double_var 8.500000 example_enum_var e1 +example_int_var -1 example_ulong_var 500 example_varopt_default 5 +select @@session.example_int_var; +@@session.example_int_var +-1 UNINSTALL SONAME 'ha_example'; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index ec680b112a32a..31fcea528aae7 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -613,8 +613,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"), ("4", "1", "sup", "0"); create table t3 ( id int(11) not null default '0', -preceeding_id int(11) not null default '0', -primary key (id,preceeding_id) +preceding_id int(11) not null default '0', +primary key (id,preceding_id) ); create table t4 ( user_id varchar(50) not null, @@ -625,7 +625,7 @@ insert into t4 values("nicke", "imp"); prepare stmt from 'select distinct t1.partner_id from t1 left join t3 on t1.id = t3.id - left join t1 pp on pp.id = t3.preceeding_id + left join t1 pp on pp.id = t3.preceding_id where exists ( select * diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 4cc3cd4a85fe0..c1c35e0e3ece8 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -7007,3 +7007,11 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; diff --git a/mysql-test/r/subselect_exists_to_in.result b/mysql-test/r/subselect_exists_to_in.result index e4577cf9b52ba..641cfc29e84dc 100644 --- a/mysql-test/r/subselect_exists_to_in.result +++ b/mysql-test/r/subselect_exists_to_in.result @@ -7015,6 +7015,14 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; set optimizer_switch=default; select @@optimizer_switch like '%exists_to_in=on%'; @@optimizer_switch like '%exists_to_in=on%' diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index a1ad1558f3193..d59f6f3524d29 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -7004,6 +7004,14 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; set optimizer_switch=default; select @@optimizer_switch like '%materialization=on%'; @@optimizer_switch like '%materialization=on%' diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index 28a72a52daa9c..df18343c6d629 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -7002,4 +7002,12 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; set @optimizer_switch_for_subselect_test=null; diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index ea11c39ab6522..e36994e053465 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -7013,6 +7013,14 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; set optimizer_switch=default; select @@optimizer_switch like '%subquery_cache=on%'; @@optimizer_switch like '%subquery_cache=on%' diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index 8cf6e6f7d9f75..69922a5fe5f6d 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -7002,5 +7002,13 @@ id select_type table type possible_keys key key_len ref rows Extra 2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index 2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index DROP TABLE t1,t2; +# +# MDEV-5991: crash in Item_field::used_tables +# +create table t1 (c int); +select exists(select 1 from t1 group by `c` in (select `c` from t1)); +exists(select 1 from t1 group by `c` in (select `c` from t1)) +0 +drop table t1; set @optimizer_switch_for_subselect_test=null; set @join_cache_level_for_subselect_test=NULL; diff --git a/mysql-test/r/subselect_sj.result b/mysql-test/r/subselect_sj.result index c76d40d1a5f3a..6c736aad8ee14 100644 --- a/mysql-test/r/subselect_sj.result +++ b/mysql-test/r/subselect_sj.result @@ -1007,8 +1007,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"), ("4", "1", "sup", "0"); create table t3 ( id int(11) not null default '0', -preceeding_id int(11) not null default '0', -primary key (id,preceeding_id) +preceding_id int(11) not null default '0', +primary key (id,preceding_id) ); create table t4 ( user_id varchar(50) not null, diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result index 92ad951325bf2..dce77b68cdc20 100644 --- a/mysql-test/r/subselect_sj_jcl6.result +++ b/mysql-test/r/subselect_sj_jcl6.result @@ -1020,8 +1020,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"), ("4", "1", "sup", "0"); create table t3 ( id int(11) not null default '0', -preceeding_id int(11) not null default '0', -primary key (id,preceeding_id) +preceding_id int(11) not null default '0', +primary key (id,preceding_id) ); create table t4 ( user_id varchar(50) not null, diff --git a/mysql-test/r/type_date.result b/mysql-test/r/type_date.result index e23c8640dfccf..398f7b83bc985 100644 --- a/mysql-test/r/type_date.result +++ b/mysql-test/r/type_date.result @@ -347,6 +347,50 @@ Warnings: Warning 1292 Incorrect datetime value: '0' Warning 1292 Incorrect datetime value: '0' Warning 1292 Incorrect datetime value: '0' +# +# MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value +# +SELECT CAST(TIME('-800:20:30') AS DATE); +CAST(TIME('-800:20:30') AS DATE) +2013-07-16 +SELECT CAST(TIME('800:20:30') AS DATE); +CAST(TIME('800:20:30') AS DATE) +2013-09-21 +SELECT CAST(TIME('33 08:20:30') AS DATE); +CAST(TIME('33 08:20:30') AS DATE) +2013-09-21 +CREATE TABLE t1 (a DATE); +INSERT INTO t1 VALUES (TIME('800:20:30')); +Warnings: +Note 1265 Data truncated for column 'a' at row 1 +INSERT INTO t1 VALUES (TIME('33 08:20:30')); +Warnings: +Note 1265 Data truncated for column 'a' at row 1 +SET SQL_MODE=NO_ZERO_IN_DATE; +INSERT INTO t1 VALUES (TIME('48:20:30')); +Warnings: +Note 1265 Data truncated for column 'a' at row 1 +SET SQL_MODE=DEFAULT; +SELECT * FROM t1; +a +2013-09-21 +2013-09-21 +2013-08-21 +DROP TABLE t1; +CREATE PROCEDURE test5041() +BEGIN +DECLARE t TIME; +DECLARE d DATE; +SET t= TIME('800:00:00'); +SET d= t; +SELECT d; +END;| +call test5041(); +d +2013-09-21 +Warnings: +Note 1265 Data truncated for column 'd' at row 1 +drop procedure test5041; SET @@timestamp=DEFAULT; # # End of 5.3 tests diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index c508bc310e172..5e5b37f480a22 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -684,6 +684,44 @@ CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+ NULL Warnings: Warning 1292 Incorrect datetime value: '2022-00-00 00:00:00' +# +# MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value +# +SET @@timestamp=UNIX_TIMESTAMP('2013-08-19 20:30:00'); +SELECT CAST(TIME('-800:20:30') AS DATETIME); +CAST(TIME('-800:20:30') AS DATETIME) +2013-07-16 15:39:30 +SELECT CAST(TIME('800:20:30') AS DATETIME); +CAST(TIME('800:20:30') AS DATETIME) +2013-09-21 08:20:30 +SELECT CAST(TIME('33 08:20:30') AS DATETIME); +CAST(TIME('33 08:20:30') AS DATETIME) +2013-09-21 08:20:30 +CREATE TABLE t1 (a DATETIME); +INSERT INTO t1 VALUES (TIME('800:20:30')); +INSERT INTO t1 VALUES (TIME('33 08:20:30')); +SET SQL_MODE=NO_ZERO_IN_DATE; +INSERT INTO t1 VALUES (TIME('48:20:30')); +SET SQL_MODE=DEFAULT; +SELECT * FROM t1; +a +2013-09-21 08:20:30 +2013-09-21 08:20:30 +2013-08-21 00:20:30 +DROP TABLE t1; +CREATE PROCEDURE test5041() +BEGIN +DECLARE t TIME; +DECLARE dt DATETIME; +SET t= TIME('800:20:30'); +SET dt= t; +SELECT dt; +END;| +call test5041(); +dt +2013-09-21 08:20:30 +drop procedure test5041; +SET @@timestamp=DEFAULT; End of 5.3 tests # # Start of 5.5 tests diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index a382cb8686927..1ea306585614c 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -846,6 +846,24 @@ Warnings: Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them drop view v1; drop table t1; +create table t1 (a varchar(20)); +create view v1 as select a from t1; +alter table t1 change a aa int; +select * from v1; +ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them +show table status; +Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment +t1 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL +v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them +Warnings: +Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them +show create view v1; +View Create View character_set_client collation_connection +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci +Warnings: +Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them +drop view v1; +drop table t1; create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1; show create view v1; View Create View character_set_client collation_connection @@ -5016,6 +5034,24 @@ id test 1 0 drop view v1; drop table t1; +# +# MDEV-5981: name resolution issues with views and multi-update +# in ps-protocol +# +create table t1 (id1 int primary key, val1 varchar(20)); +insert into t1 values (1, 'test1'); +create table t2 (id2 int primary key, val2 varchar(20)); +insert into t2 values (1, 'test2'); +create algorithm=merge view v1 as select id1 as id1v1, val1 as val1v1 from t1; +create algorithm=merge view v2 as +select t2.id2 as id2v2, t2.val2 as val2v2 +from t2, v1 +where t2.id2 = v1.id1v1; +prepare stmt1 from "update v2 set val2v2 = 'test19' where 1 = id2v2"; +execute stmt1; +deallocate prepare stmt1; +drop view v1,v2; +drop table t1,t2; # ----------------------------------------------------------------- # -- End of 5.3 tests. # ----------------------------------------------------------------- diff --git a/mysql-test/r/xml.result b/mysql-test/r/xml.result index 05c0db6e3cf8b..24b95f0e20470 100644 --- a/mysql-test/r/xml.result +++ b/mysql-test/r/xml.result @@ -132,7 +132,7 @@ xb1 xc1 SELECT extractValue(@xml,'/a//@x[2]'); extractValue(@xml,'/a//@x[2]') xb2 xc2 -SET @xml='b1b2c1b1c1b2c2b1'; +SET @xml='b1b2c1b1c1b2c2b1'; SELECT extractValue(@xml,'//b[1]'); extractValue(@xml,'//b[1]') b1 c1b1 c2b1 @@ -1134,6 +1134,24 @@ Warnings: Warning 1525 Incorrect XML value: 'parse error at line 1 pos 11: STRING unexpected (ident or '/' wanted)' End of 5.1 tests # +# Start of 5.3 tests +# +# +# MDEV-5338 XML parser accepts malformed data +# +SELECT ExtractValue('xxx','/a/b'); +ExtractValue('xxx','/a/b') +NULL +Warnings: +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 10: '' unexpected ('' wanted)' +SELECT ExtractValue('xxx','/a/b'); +ExtractValue('xxx','/a/b') +NULL +Warnings: +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 13: '' unexpected ('' wanted)' +# +# End of 5.3 tests +# # Start of 5.5 tests # # diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result index a6d997f653a85..c34ccdf56016b 100644 --- a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result @@ -74,6 +74,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp932_japanese_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result index a6d997f653a85..c34ccdf56016b 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result @@ -74,6 +74,15 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp932_japanese_ci .wwwmysqlcom set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/suite/funcs_1/datadict/processlist_val.inc b/mysql-test/suite/funcs_1/datadict/processlist_val.inc index 109ecdfa901cb..f5d736a840221 100644 --- a/mysql-test/suite/funcs_1/datadict/processlist_val.inc +++ b/mysql-test/suite/funcs_1/datadict/processlist_val.inc @@ -89,7 +89,7 @@ echo # - TIME (printed value will be unified), the exact values are like # "normal" load: 0 (seconds) # "heavy" load: 1 or more (seconds) -# - State 'executing' +# - State 'Filling schema table' # - INFO must contain the corresponding SHOW/SELECT PROCESSLIST # # 1. Just dump what we get @@ -109,7 +109,7 @@ FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id; SELECT COUNT(*) = 1 AS "Expect 1" FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id AND USER = 'root' AND DB = 'test' AND Command IN('Query','Execute') - AND State = 'executing'; + AND State = 'Filling schema table'; # # 4. Change the DB USE information_schema; diff --git a/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result b/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result index f803780f57e3b..50599fd42b0b8 100644 --- a/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result +++ b/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result @@ -44,11 +44,11 @@ ID root HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS SELECT * FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID root HOST_NAME information_schema Query TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID root HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID root HOST_NAME information_schema Query TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID root HOST_NAME information_schema Query TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist; UPDATE test.t_processlist SET user='horst' WHERE id=1 ; @@ -119,10 +119,10 @@ Id User Host db Command Time State Info Progress ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist; UPDATE test.t_processlist SET user='horst' WHERE id=1 ; INSERT INTO processlist SELECT * FROM test.t_processlist; @@ -182,7 +182,7 @@ Id User Host db Command Time State Info Progress ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 4.2 New connection con101 (ddicttestuser1 with PROCESS privilege) SHOW/SELECT shows all processes/threads. @@ -197,7 +197,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### @@ -221,7 +221,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -245,7 +245,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### @@ -263,7 +263,7 @@ Grants for @localhost GRANT USAGE ON *.* TO ''@'localhost' SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1 @@ -285,7 +285,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -311,7 +311,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -365,7 +365,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser2 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser2 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -394,7 +394,7 @@ ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser2 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser2 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1 @@ -423,7 +423,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -459,7 +459,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID diff --git a/mysql-test/suite/funcs_1/r/processlist_priv_ps.result b/mysql-test/suite/funcs_1/r/processlist_priv_ps.result index 70d88904e60cf..63d2aa4d03ef4 100644 --- a/mysql-test/suite/funcs_1/r/processlist_priv_ps.result +++ b/mysql-test/suite/funcs_1/r/processlist_priv_ps.result @@ -44,11 +44,11 @@ ID root HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS SELECT * FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID root HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID root HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID root HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID root HOST_NAME information_schema Execute TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist; UPDATE test.t_processlist SET user='horst' WHERE id=1 ; @@ -119,10 +119,10 @@ Id User Host db Command Time State Info Progress ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist; UPDATE test.t_processlist SET user='horst' WHERE id=1 ; INSERT INTO processlist SELECT * FROM test.t_processlist; @@ -182,7 +182,7 @@ Id User Host db Command Time State Info Progress ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 4.2 New connection con101 (ddicttestuser1 with PROCESS privilege) SHOW/SELECT shows all processes/threads. @@ -197,7 +197,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### @@ -221,7 +221,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -245,7 +245,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### @@ -263,7 +263,7 @@ Grants for @localhost GRANT USAGE ON *.* TO ''@'localhost' SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1 @@ -285,7 +285,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -311,7 +311,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -365,7 +365,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser2 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -394,7 +394,7 @@ ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser2 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID #################################################################################### 11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1 @@ -423,7 +423,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID @@ -459,7 +459,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS SELECT * FROM information_schema.processlist; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID -ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID +ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID diff --git a/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result b/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result index c68e504f05a1e..37618673bbf8e 100644 --- a/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result +++ b/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result @@ -33,7 +33,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID - root test Query