Hello community,

here is the log from the commit of package mariadb-connector-c for 
openSUSE:Factory checked in at 2019-12-07 15:19:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mariadb-connector-c (Old)
 and      /work/SRC/openSUSE:Factory/.mariadb-connector-c.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mariadb-connector-c"

Sat Dec  7 15:19:01 2019 rev:21 rq:751755 version:3.1.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/mariadb-connector-c/mariadb-connector-c.changes  
2019-09-30 15:51:58.782401305 +0200
+++ 
/work/SRC/openSUSE:Factory/.mariadb-connector-c.new.4691/mariadb-connector-c.changes
        2019-12-07 15:22:36.599735274 +0100
@@ -1,0 +2,10 @@
+Thu Nov 28 16:06:53 UTC 2019 - Kristyna Streitova <[email protected]>
+
+- New upstream version 3.1.5 [bsc#1156669]
+  * MDEV-20469: Plugin dialog could not be loaded (wrong path)
+  * ODBC-440: Fixed typo in sha256_password cmake configuration
+  * CONC-418: For unknown/not handled schannel error codes
+    FormatMessage function will be used instead of returning
+    "Unknown error" message.
+  
+-------------------------------------------------------------------

Old:
----
  mariadb-connector-c-3.1.4-src.tar.gz
  mariadb-connector-c-3.1.4-src.tar.gz.asc

New:
----
  mariadb-connector-c-3.1.5-src.tar.gz
  mariadb-connector-c-3.1.5-src.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mariadb-connector-c.spec ++++++
--- /var/tmp/diff_new_pack.Rz3RBi/_old  2019-12-07 15:22:37.659735127 +0100
+++ /var/tmp/diff_new_pack.Rz3RBi/_new  2019-12-07 15:22:37.671735126 +0100
@@ -19,13 +19,13 @@
 %define sover 3
 %define libname libmariadb
 # equivalent mariadb version
-%define mariadb_version 10.3.17
+%define mariadb_version 10.3.20
 %if ! %{defined _rundir}
 %define _rundir %{_localstatedir}/run
 %endif
 %bcond_with sqlite3
 Name:           mariadb-connector-c
-Version:        3.1.4
+Version:        3.1.5
 Release:        0
 Summary:        MariaDB connector in C
 License:        LGPL-2.1-or-later

++++++ mariadb-connector-c-3.1.4-src.tar.gz -> 
mariadb-connector-c-3.1.5-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.4-src/CMakeLists.txt 
new/mariadb-connector-c-3.1.5-src/CMakeLists.txt
--- old/mariadb-connector-c-3.1.4-src/CMakeLists.txt    2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/CMakeLists.txt    2019-10-31 
06:06:39.000000000 +0100
@@ -36,7 +36,7 @@
 
 SET(CPACK_PACKAGE_VERSION_MAJOR 3)
 SET(CPACK_PACKAGE_VERSION_MINOR 1)
-SET(CPACK_PACKAGE_VERSION_PATCH 4)
+SET(CPACK_PACKAGE_VERSION_PATCH 5)
 SET(CPACK_PACKAGE_VERSION 
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
 MATH(EXPR MARIADB_PACKAGE_VERSION_ID "${CPACK_PACKAGE_VERSION_MAJOR} * 10000 +
                             ${CPACK_PACKAGE_VERSION_MINOR} * 100   +
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/cmake/CheckFunctions.cmake 
new/mariadb-connector-c-3.1.5-src/cmake/CheckFunctions.cmake
--- old/mariadb-connector-c-3.1.4-src/cmake/CheckFunctions.cmake        
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/cmake/CheckFunctions.cmake        
2019-10-31 06:06:39.000000000 +0100
@@ -21,3 +21,4 @@
 CHECK_FUNCTION_EXISTS (nl_langinfo HAVE_NL_LANGINFO)
 CHECK_FUNCTION_EXISTS (setlocale HAVE_SETLOCALE)
 CHECK_FUNCTION_EXISTS (poll HAVE_POLL)
+CHECK_FUNCTION_EXISTS (getpwuid HAVE_GETPWUID)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.4-src/include/ma_common.h 
new/mariadb-connector-c-3.1.5-src/include/ma_common.h
--- old/mariadb-connector-c-3.1.4-src/include/ma_common.h       2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/include/ma_common.h       2019-10-31 
06:06:39.000000000 +0100
@@ -91,6 +91,7 @@
 
 struct st_mariadb_net_extension {
   enum enum_multi_status multi_status;
+  int extended_errno;
 };
 
 struct st_mariadb_session_state
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.4-src/include/mariadb_stmt.h 
new/mariadb-connector-c-3.1.5-src/include/mariadb_stmt.h
--- old/mariadb-connector-c-3.1.4-src/include/mariadb_stmt.h    2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/include/mariadb_stmt.h    2019-10-31 
06:06:39.000000000 +0100
@@ -38,7 +38,9 @@
 { \
   (a)->last_errno= (b);\
   strncpy((a)->sqlstate, (c), SQLSTATE_LENGTH);\
-  strncpy((a)->last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE - 1);\
+  (a)->sqlstate[SQLSTATE_LENGTH]= 0;\
+  strncpy((a)->last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE);\
+  (a)->last_error[MYSQL_ERRMSG_SIZE - 1]= 0;\
 }
 
 #define CLEAR_CLIENT_STMT_ERROR(a) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/include/mariadb_version.h.in 
new/mariadb-connector-c-3.1.5-src/include/mariadb_version.h.in
--- old/mariadb-connector-c-3.1.4-src/include/mariadb_version.h.in      
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/include/mariadb_version.h.in      
2019-10-31 06:06:39.000000000 +0100
@@ -24,7 +24,7 @@
 #define MARIADB_PACKAGE_VERSION_ID @MARIADB_PACKAGE_VERSION_ID@
 #define MARIADB_SYSTEM_TYPE "@CMAKE_SYSTEM_NAME@"
 #define MARIADB_MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@"
-#define MARIADB_PLUGINDIR "@CMAKE_INSTALL_PREFIX@/@PLUGINDIR@"
+#define MARIADB_PLUGINDIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_PLUGINDIR@"
 
 /* mysqld compile time options */
 #ifndef MYSQL_CHARSET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.4-src/include/mysql.h 
new/mariadb-connector-c-3.1.5-src/include/mysql.h
--- old/mariadb-connector-c-3.1.4-src/include/mysql.h   2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/include/mysql.h   2019-10-31 
06:06:39.000000000 +0100
@@ -125,7 +125,9 @@
   { \
     (a)->net.last_errno= (b);\
     strncpy((a)->net.sqlstate, (c), SQLSTATE_LENGTH);\
+    (a)->net.sqlstate[SQLSTATE_LENGTH]= 0;\
     strncpy((a)->net.last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE - 1);\
+    (a)->net.last_error[MYSQL_ERRMSG_SIZE - 1]= 0;\
   }
 
 /* For mysql_async.c */
@@ -138,6 +140,7 @@
     (a)->net.last_errno= 0;\
     strcpy((a)->net.sqlstate, "00000");\
     (a)->net.last_error[0]= '\0';\
+    (a)->net.extension->extended_errno= 0;\
   }
 
 #define MYSQL_COUNT_ERROR (~(unsigned long long) 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/libmariadb/CMakeLists.txt 
new/mariadb-connector-c-3.1.5-src/libmariadb/CMakeLists.txt
--- old/mariadb-connector-c-3.1.4-src/libmariadb/CMakeLists.txt 2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/libmariadb/CMakeLists.txt 2019-10-31 
06:06:39.000000000 +0100
@@ -75,8 +75,6 @@
  mysql_get_server_version
  mysql_get_socket
  mysql_get_ssl_cipher
- mysql_get_timeout_value
- mysql_get_timeout_value_ms
  mysql_hex_string
  mysql_info
  mysql_init
@@ -201,8 +199,6 @@
  mysql_fetch_row_start
  mysql_free_result_cont
  mysql_free_result_start
- mysql_get_timeout_value
- mysql_get_timeout_value_ms
  mysql_kill_cont
  mysql_kill_start
  mysql_list_fields_cont
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/libmariadb/ma_client_plugin.c.in 
new/mariadb-connector-c-3.1.5-src/libmariadb/ma_client_plugin.c.in
--- old/mariadb-connector-c-3.1.4-src/libmariadb/ma_client_plugin.c.in  
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/libmariadb/ma_client_plugin.c.in  
2019-10-31 06:06:39.000000000 +0100
@@ -30,10 +30,8 @@
   There is no reference counting and no unloading either.
 */
 
-#if _MSC_VER
 /* Silence warnings about variable 'unused' being used. */
 #define FORCE_INIT_OF_VARS 1
-#endif
 
 #include <ma_global.h>
 #include <ma_sys.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/libmariadb/mariadb_lib.c 
new/mariadb-connector-c-3.1.5-src/libmariadb/mariadb_lib.c
--- old/mariadb-connector-c-3.1.4-src/libmariadb/mariadb_lib.c  2019-09-03 
14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/libmariadb/mariadb_lib.c  2019-10-31 
06:06:39.000000000 +0100
@@ -1020,7 +1020,7 @@
   mysql->charset= mysql_find_charset_name(MARIADB_DEFAULT_CHARSET);
   mysql->methods= &MARIADB_DEFAULT_METHODS;
   strcpy(mysql->net.sqlstate, "00000");
-  mysql->net.last_error[0]= mysql->net.last_errno= 0;
+  mysql->net.last_error[0]= mysql->net.last_errno= 
mysql->net.extension->extended_errno= 0;
 
   if (ENABLED_LOCAL_INFILE != LOCAL_INFILE_MODE_OFF)
     mysql->options.client_flag|= CLIENT_LOCAL_FILES;
@@ -1199,9 +1199,42 @@
       return my;
     }
   }
-
+#ifndef HAVE_SCHANNEL
   return mysql->methods->db_connect(mysql, host, user, passwd,
                                     db, port, unix_socket, client_flag);
+#else
+/* 
+   With older windows versions (prior Win 10) TLS connections periodically
+   fail with SEC_E_INVALID_TOKEN, SEC_E_BUFFER_TOO_SMALL or 
SEC_E_MESSAGE_ALTERED
+   error (see MDEV-13492). If the connect attempt returns on of these error 
codes
+   in mysql->net.extended_errno we will try to connect again (max. 3 times)
+*/
+#define MAX_SCHANNEL_CONNECT_ATTEMPTS 3
+  {
+    int ssl_retry= (mysql->options.use_ssl) ? MAX_SCHANNEL_CONNECT_ATTEMPTS : 
1;
+       MYSQL *my= NULL;
+    while (ssl_retry)
+    {
+      if ((my= mysql->methods->db_connect(mysql, host, user, passwd,
+                                    db, port, unix_socket, client_flag | 
CLIENT_REMEMBER_OPTIONS)))
+        return my;
+
+      switch (mysql->net.extension->extended_errno) {
+        case SEC_E_INVALID_TOKEN:
+        case SEC_E_BUFFER_TOO_SMALL:
+        case SEC_E_MESSAGE_ALTERED:
+          ssl_retry--;
+          break;
+        default:
+          ssl_retry= 0;
+          break;
+      }
+    }
+    if (!my && !(client_flag & CLIENT_REMEMBER_OPTIONS))
+      mysql_close_options(mysql);
+    return my;
+  }
+#endif
 }
 
 MYSQL *mthd_my_real_connect(MYSQL *mysql, const char *host, const char *user,
@@ -3757,7 +3790,7 @@
 #ifdef HAVE_TLS
     *((const char **)arg)= tls_library_version;
 #else
-    *((char **)arg)= "Off";
+    *((const char **)arg)= "Off";
 #endif
     break;
   case MARIADB_CLIENT_VERSION:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/libmariadb/secure/ma_schannel.c 
new/mariadb-connector-c-3.1.5-src/libmariadb/secure/ma_schannel.c
--- old/mariadb-connector-c-3.1.4-src/libmariadb/secure/ma_schannel.c   
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/libmariadb/secure/ma_schannel.c   
2019-10-31 06:06:39.000000000 +0100
@@ -26,12 +26,16 @@
 #define MAX_SSL_ERR_LEN 100
 
 #define SCHANNEL_PAYLOAD(A) (A).cbMaximumMessage + (A).cbHeader + (A).cbTrailer
-void ma_schannel_set_win_error(MARIADB_PVIO *pvio);
+void ma_schannel_set_win_error(MARIADB_PVIO *pvio, DWORD ErrorNo 
__attribute__((unused)));
 
 /* {{{ void ma_schannel_set_sec_error */
 void ma_schannel_set_sec_error(MARIADB_PVIO *pvio, DWORD ErrorNo)
 {
   MYSQL *mysql= pvio->mysql;
+
+  if (ErrorNo != SEC_E_OK)
+    mysql->net.extension->extended_errno= ErrorNo;
+
   switch(ErrorNo) {
   case SEC_E_ILLEGAL_MESSAGE:
     pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "SSL 
connection error: The message received was unexpected or badly formatted");
@@ -73,20 +77,20 @@
     break;
   case SEC_E_INTERNAL_ERROR:
     if (GetLastError())
-      ma_schannel_set_win_error(pvio);
+      ma_schannel_set_win_error(pvio, 0);
     else
       pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "The 
Local Security Authority cannot be contacted");
     break;
   default:
-    pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "Unknown 
SSL error (0x%x)", ErrorNo);
+    ma_schannel_set_win_error(pvio, ErrorNo);
   }
 }
 /* }}} */
 
 /* {{{ void ma_schnnel_set_win_error */
-void ma_schannel_set_win_error(MARIADB_PVIO *pvio)
+void ma_schannel_set_win_error(MARIADB_PVIO *pvio, DWORD ErrorNo 
__attribute__((unused)))
 {
-  ulong ssl_errno= GetLastError();
+  ulong ssl_errno= ErrorNo ? ErrorNo : GetLastError();
   char *ssl_error_reason= NULL;
   char *p;
   char buffer[256];
@@ -146,7 +150,7 @@
   if ((hfile= CreateFile(PemFileName, GENERIC_READ, FILE_SHARE_READ, NULL, 
OPEN_EXISTING, 
                           FILE_ATTRIBUTE_NORMAL, NULL )) == 
INVALID_HANDLE_VALUE)
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     return NULL;
   }
 
@@ -164,7 +168,7 @@
 
   if (!ReadFile(hfile, buffer, *buffer_len, &dwBytesRead, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
 
@@ -174,7 +178,7 @@
   if (!CryptStringToBinaryA(buffer, *buffer_len, CRYPT_STRING_BASE64HEADER,
                             NULL, &der_buffer_length, NULL, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
   /* allocate DER binary buffer */
@@ -187,7 +191,7 @@
   if (!CryptStringToBinaryA(buffer, *buffer_len, CRYPT_STRING_BASE64HEADER,
                             der_buffer, &der_buffer_length, NULL, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
 
@@ -217,7 +221,7 @@
   if ((hfile = CreateFile(PemFile, GENERIC_READ, FILE_SHARE_READ, NULL, 
OPEN_EXISTING,
     FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE)
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     return NULL;
   }
 
@@ -235,7 +239,7 @@
 
   if (!ReadFile(hfile, buffer, *buffer_len, &dwBytesRead, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
 
@@ -262,7 +266,7 @@
   if (!CryptStringToBinaryA(buffer, buffer_len, CRYPT_STRING_BASE64HEADER,
     NULL, der_len, NULL, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
   /* allocate DER binary buffer */
@@ -275,7 +279,7 @@
   if (!CryptStringToBinaryA(buffer, buffer_len, CRYPT_STRING_BASE64HEADER,
     der_buffer, der_len, NULL, NULL))
   {
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
     goto end;
   }
   return der_buffer;
@@ -350,7 +354,7 @@
       if (!(ctx->client_cert_ctx = 
(CERT_CONTEXT*)CertCreateCertificateContext(X509_ASN_ENCODING | 
PKCS_7_ASN_ENCODING,
         der_buffer, der_buffer_length)))
       {
-        ma_schannel_set_win_error(pvio);
+        ma_schannel_set_win_error(pvio, 0);
         goto error;
       }
     }
@@ -429,7 +433,7 @@
     goto end;
   if (!(ctx= (CERT_CONTEXT *)CertCreateCertificateContext(X509_ASN_ENCODING | 
PKCS_7_ASN_ENCODING,
                                     der_buffer, der_buffer_length)))
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
 
 end:
   if (der_buffer)
@@ -468,7 +472,7 @@
     goto end;
   if (!(ctx= CertCreateCRLContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
                                     der_buffer, der_buffer_length)))
-    ma_schannel_set_win_error(pvio);
+    ma_schannel_set_win_error(pvio, 0);
 end:
   if (der_buffer)
     free(der_buffer);
@@ -518,7 +522,7 @@
                             0, NULL,
                             NULL, &priv_key_len))
    {
-     ma_schannel_set_win_error(pvio);
+     ma_schannel_set_win_error(pvio, 0);
      goto end;
    }
 
@@ -535,20 +539,20 @@
      0, NULL,
      priv_key, &priv_key_len))
    {
-     ma_schannel_set_win_error(pvio);
+     ma_schannel_set_win_error(pvio, 0);
      goto end;
    }
 
    /* Acquire context */
    if (!CryptAcquireContext(&crypt_prov, NULL, MS_ENHANCED_PROV, 
PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
    {
-     ma_schannel_set_win_error(pvio);
+     ma_schannel_set_win_error(pvio, 0);
      goto end;
    }
    /* ... and import the private key */
    if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, 0, 0, (HCRYPTKEY 
*)&crypt_key))
    {
-     ma_schannel_set_win_error(pvio);
+     ma_schannel_set_win_error(pvio, 0);
      goto end;
    }
 
@@ -560,7 +564,7 @@
    if (CertSetCertificateContextProperty(ctx->client_cert_ctx, 
CERT_KEY_CONTEXT_PROP_ID, 0, &kpi))
      rc= 1;
    else
-     ma_schannel_set_win_error(pvio);
+     ma_schannel_set_win_error(pvio, 0);
 
 end:
   if (ctx->der_key)
@@ -1043,7 +1047,7 @@
     DWORD flags = CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG;
     if (!CertVerifySubjectCertificateContext(pServerCert, ca_ctx, &flags))
     {
-      ma_schannel_set_win_error(pvio);
+      ma_schannel_set_win_error(pvio, 0);
       goto end;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/plugins/auth/CMakeLists.txt 
new/mariadb-connector-c-3.1.5-src/plugins/auth/CMakeLists.txt
--- old/mariadb-connector-c-3.1.4-src/plugins/auth/CMakeLists.txt       
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/plugins/auth/CMakeLists.txt       
2019-10-31 06:06:39.000000000 +0100
@@ -83,7 +83,7 @@
                     CONFIGURATIONS DYNAMIC STATIC OFF
                     DEFAULT DYNAMIC
                     SOURCES ${AUTH_DIR}/sha256_pw.c
-                    LIBRARIES ${CRYT_LIBS})
+                    LIBRARIES ${CRYPT_LIBS})
   ENDIF()
 ENDIF()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/plugins/auth/caching_sha2_pw.c 
new/mariadb-connector-c-3.1.5-src/plugins/auth/caching_sha2_pw.c
--- old/mariadb-connector-c-3.1.4-src/plugins/auth/caching_sha2_pw.c    
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/plugins/auth/caching_sha2_pw.c    
2019-10-31 06:06:39.000000000 +0100
@@ -275,14 +275,6 @@
   memmove(mysql->scramble_buff, packet, SCRAMBLE_LENGTH);
   mysql->scramble_buff[SCRAMBLE_LENGTH]= 0;
 
-  /* if a tls session is active we need to send plain password */
-  if (mysql->client_flag & CLIENT_SSL)
-  {
-    if (vio->write_packet(vio, (unsigned char *)mysql->passwd, 
(int)strlen(mysql->passwd) + 1))
-      return CR_ERROR;
-    return CR_OK;
-  }
-
   /* send empty packet if no password was provided */
   if (!mysql->passwd || !mysql->passwd[0])
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/plugins/auth/gssapi_errmsg.c 
new/mariadb-connector-c-3.1.5-src/plugins/auth/gssapi_errmsg.c
--- old/mariadb-connector-c-3.1.4-src/plugins/auth/gssapi_errmsg.c      
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/plugins/auth/gssapi_errmsg.c      
2019-10-31 06:06:39.000000000 +0100
@@ -26,7 +26,7 @@
 POSSIBILITY OF SUCH DAMAGE.
 */
 
-#ifdef  __FreeBSD__
+#if defined(__FreeBSD__) ||  defined(SOLARIS) || defined(__sun)
 #include <gssapi/gssapi.h>
 #else
 #include <gssapi.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/unittest/libmariadb/connection.c 
new/mariadb-connector-c-3.1.5-src/unittest/libmariadb/connection.c
--- old/mariadb-connector-c-3.1.4-src/unittest/libmariadb/connection.c  
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/unittest/libmariadb/connection.c  
2019-10-31 06:06:39.000000000 +0100
@@ -1684,8 +1684,54 @@
   return OK;
 }
 
+static int test_conc443(MYSQL *my __attribute__((unused)))
+{
+  my_bool x= 1;
+  unsigned long thread_id= 0;
+  char query[128];
+  MYSQL_RES *result;
+  MYSQL_ROW row;
+  int rc;
+
+  MYSQL *mysql= mysql_init(NULL);
+  mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=3");
+  mysql_options(mysql, MYSQL_OPT_RECONNECT, &x);
+
+  if (!mysql_real_connect(mysql, hostname, username, password, schema, port, 
socketname, CLIENT_REMEMBER_OPTIONS))
+  {
+    diag("Connection failed. Error: %s", mysql_error(mysql));
+    mysql_close(mysql);
+  }
+
+  thread_id= mysql_thread_id(mysql);
+
+  sprintf(query, "KILL %lu", thread_id);
+  rc= mysql_query(mysql, query);
+
+  sleep(3);
+
+  rc= mysql_ping(mysql);
+  check_mysql_rc(rc, mysql);
+
+  rc= mysql_query(mysql, "SELECT @a");
+  check_mysql_rc(rc, mysql);
+
+  FAIL_IF(mysql_thread_id(mysql) == thread_id, "Expected different thread id");
+
+  result= mysql_store_result(mysql);
+  if (!result)
+    return FAIL;
+  row= mysql_fetch_row(result);
+  FAIL_IF(strcmp(row[0],"3"), "Wrong result");
+
+  mysql_free_result(result);
+  mysql_close(mysql);
+
+  return OK;
+}
 
 struct my_tests_st my_tests[] = {
+  {"test_conc443", test_conc443, TEST_CONNECTION_NONE, 0, NULL, NULL},
   {"test_conc366", test_conc366, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
   {"test_conc392", test_conc392, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
   {"test_conc312", test_conc312, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.4-src/unittest/libmariadb/ps_bugs.c 
new/mariadb-connector-c-3.1.5-src/unittest/libmariadb/ps_bugs.c
--- old/mariadb-connector-c-3.1.4-src/unittest/libmariadb/ps_bugs.c     
2019-09-03 14:48:10.000000000 +0200
+++ new/mariadb-connector-c-3.1.5-src/unittest/libmariadb/ps_bugs.c     
2019-10-31 06:06:39.000000000 +0100
@@ -5112,7 +5112,57 @@
   return OK;
 }
 
+static int test_maxparam(MYSQL *mysql)
+{
+  const char *query= "INSERT INTO t1 VALUES (?)";
+  int rc;
+  char *buffer;
+  int i;
+  int val= 1;
+  size_t mem= strlen(query) + 1 + 4 * 65535 + 1;
+  MYSQL_STMT *stmt= mysql_stmt_init(mysql);
+  MYSQL_BIND bind[65535];
+
+  rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
+  check_mysql_rc(rc, mysql);
+
+  rc= mysql_query(mysql, "CREATE TABLE t1 (a int)");
+  check_mysql_rc(rc, mysql);
+
+  buffer= calloc(1, mem);
+  strcpy(buffer, query);
+  for (i=0; i < 65534.; i++)
+    strcat(buffer, ",(?)");
+  rc= mysql_stmt_prepare(stmt, SL(buffer));
+  check_stmt_rc(rc, stmt);
+
+  memset(bind, 0, sizeof(MYSQL_BIND) * 65535);
+  for (i=0; i < 65534; i++)
+  {
+    bind[i].buffer_type= MYSQL_TYPE_LONG;
+    bind[i].buffer= &val;
+  }
+
+  rc= mysql_stmt_bind_param(stmt, bind);
+  check_stmt_rc(rc, stmt);
+
+  rc= mysql_stmt_execute(stmt);
+  check_stmt_rc(rc, stmt);
+
+  FAIL_IF(mysql_stmt_affected_rows(stmt) != 65535, "Expected 
affected_rows=65535");
+
+  strcat(buffer, ",(?)");
+  rc= mysql_stmt_prepare(stmt, SL(buffer));
+  free(buffer);
+  FAIL_IF(!rc, "Error expected");
+  FAIL_IF(mysql_stmt_errno(stmt) != ER_PS_MANY_PARAM, "Expected 
ER_PS_MANY_PARAM error");
+
+  mysql_stmt_close(stmt);
+  return OK;
+}
+
 struct my_tests_st my_tests[] = {
+  {"test_maxparam", test_maxparam, TEST_CONNECTION_NEW, 0, NULL, NULL},
   {"test_conc424", test_conc424, TEST_CONNECTION_NEW, 0, NULL, NULL},
   {"test_conc344", test_conc344, TEST_CONNECTION_NEW, 0, NULL, NULL},
   {"test_conc334", test_conc334, TEST_CONNECTION_NEW, 0, NULL, NULL},



Reply via email to