summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/ac-macros/yassl.m44
-rw-r--r--include/Makefile.am3
-rw-r--r--libmysql_r/Makefile.am4
-rw-r--r--mysql-test/r/grant.result9
-rw-r--r--mysql-test/t/grant.test12
-rw-r--r--sql/sql_acl.cc5
6 files changed, 31 insertions, 6 deletions
diff --git a/config/ac-macros/yassl.m4 b/config/ac-macros/yassl.m4
index 77208faee0c..b4160ad2a99 100644
--- a/config/ac-macros/yassl.m4
+++ b/config/ac-macros/yassl.m4
@@ -30,7 +30,9 @@ AC_DEFUN([MYSQL_CHECK_YASSL], [
;;
esac
AC_SUBST([yassl_taocrypt_extra_cxxflags])
-
+ # Link extra/yassl/include/openssl subdir to include/
+ yassl_h_ln_cmd="\$(LN) -s \$(top_srcdir)/extra/yassl/include/openssl openssl"
+ AC_SUBST(yassl_h_ln_cmd)
else
yassl_dir=""
AC_MSG_RESULT(no)
diff --git a/include/Makefile.am b/include/Makefile.am
index 8ad63f088ac..12b8c301b8d 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -33,7 +33,7 @@ noinst_HEADERS = config-win.h config-os2.h config-netware.h \
mysql_version.h.in my_handler.h my_time.h decimal.h
# mysql_version.h are generated
-CLEANFILES = mysql_version.h my_config.h readline
+CLEANFILES = mysql_version.h my_config.h readline openssl
# Some include files that may be moved and patched by configure
DISTCLEANFILES = sched.h $(CLEANFILES)
@@ -41,6 +41,7 @@ DISTCLEANFILES = sched.h $(CLEANFILES)
link_sources:
-$(RM) -fr readline
@readline_h_ln_cmd@
+ @yassl_h_ln_cmd@
my_config.h: ../config.h
$(CP) ../config.h my_config.h
diff --git a/libmysql_r/Makefile.am b/libmysql_r/Makefile.am
index ee6dd4cfded..11e65a28a19 100644
--- a/libmysql_r/Makefile.am
+++ b/libmysql_r/Makefile.am
@@ -22,7 +22,7 @@
target = libmysqlclient_r.la
target_defs = -DDONT_USE_RAID -DMYSQL_CLIENT @LIB_EXTRA_CCFLAGS@
-LIBS = @LIBS@ @ZLIB_LIBS@ @openssl_libs@ @yassl_libs@
+LIBS = @LIBS@ @ZLIB_LIBS@ @openssl_libs@
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
$(openssl_includes) $(yassl_includes) @ZLIB_INCLUDES@
@@ -32,7 +32,7 @@ include $(top_srcdir)/libmysql/Makefile.shared
libmysql_dir = $(top_srcdir)/libmysql
libmysqlclient_r_la_SOURCES = $(target_sources)
-libmysqlclient_r_la_LIBADD = $(target_libadd)
+libmysqlclient_r_la_LIBADD = $(target_libadd) $(yassl_libs_with_path)
libmysqlclient_r_la_LDFLAGS = $(target_ldflags)
# This is called from the toplevel makefile
diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result
index 448847bc919..eea29161de8 100644
--- a/mysql-test/r/grant.result
+++ b/mysql-test/r/grant.result
@@ -615,3 +615,12 @@ show grants for root@localhost;
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
set names latin1;
+create user mysqltest_7@;
+set password for mysqltest_7@ = password('systpass');
+show grants for mysqltest_7@;
+Grants for mysqltest_7@
+GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB745219D9C876814231DAF46517'
+drop user mysqltest_7@;
+flush privileges;
+show grants for mysqltest_7@;
+ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host ''
diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test
index e806df5e91c..9a8b7a19c59 100644
--- a/mysql-test/t/grant.test
+++ b/mysql-test/t/grant.test
@@ -499,4 +499,16 @@ revoke all privileges on ÂÄ.* from root@localhost;
show grants for root@localhost;
set names latin1;
+#
+# Bug #15598 Server crashes in specific case during setting new password
+# - Caused by a user with host ''
+#
+create user mysqltest_7@;
+set password for mysqltest_7@ = password('systpass');
+show grants for mysqltest_7@;
+drop user mysqltest_7@;
+flush privileges; # BUG#16297(flush should be removed when that bug is fixed)
+--error 1141
+show grants for mysqltest_7@;
+
# End of 4.1 tests
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 061020e1952..7bb84895da5 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -1543,7 +1543,8 @@ find_acl_user(const char *host, const char *user, my_bool exact)
acl_user->user && !strcmp(user,acl_user->user))
{
if (exact ? !my_strcasecmp(&my_charset_latin1, host,
- acl_user->host.hostname) :
+ acl_user->host.hostname ?
+ acl_user->host.hostname : "") :
compare_hostname(&acl_user->host,host,host))
{
DBUG_RETURN(acl_user);
@@ -4638,7 +4639,7 @@ ACL_USER *check_acl_user(LEX_USER *user_name,
if (!(user=acl_user->user))
user= "";
if (!(host=acl_user->host.hostname))
- host= "%";
+ host= "";
if (!strcmp(user_name->user.str,user) &&
!my_strcasecmp(system_charset_info, user_name->host.str, host))
break;