Hello community,

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

Package is "mariadb-connector-c"

Thu Aug 15 12:25:31 2019 rev:19 rq:721052 version:3.1.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/mariadb-connector-c/mariadb-connector-c.changes  
2019-07-08 15:04:44.122871157 +0200
+++ 
/work/SRC/openSUSE:Factory/.mariadb-connector-c.new.9556/mariadb-connector-c.changes
        2019-08-15 12:25:34.450603590 +0200
@@ -1,0 +2,16 @@
+Mon Aug  5 11:28:22 UTC 2019 - Kristyna Streitova <[email protected]>
+
+- New upstream version 3.1.3
+  * CONC-380: Fix CMake warnings
+  * CONC-345: heap-use-after-free in client_mpvio_read_packet
+  * CONC-423: Fix GnuTLS error with TLSv1.3
+  * CONC-424: Ignore SERVER_STATUS_CURSOR_EXISTS if client didn't
+    open a cursor before
+  * CONC-421: Fixed crash in GnuTLS when key and certificate are
+    in the same file
+  * CONC-429: Don't allow invalid characters in plugin names
+  * MDEV-19807: Fixed Location of PLUGINDIR if Connector/C is a
+    subproject
+- refresh absolute_path_fix.patch and private_library.patch
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ mariadb-connector-c.spec ++++++
--- /var/tmp/diff_new_pack.5uFlD7/_old  2019-08-15 12:25:34.894603479 +0200
+++ /var/tmp/diff_new_pack.5uFlD7/_new  2019-08-15 12:25:34.894603479 +0200
@@ -19,13 +19,13 @@
 %define sover 3
 %define libname libmariadb
 # equivalent mariadb version
-%define mariadb_version 10.2.25
+%define mariadb_version 10.3.17
 %if ! %{defined _rundir}
 %define _rundir %{_localstatedir}/run
 %endif
 %bcond_with sqlite3
 Name:           mariadb-connector-c
-Version:        3.1.2
+Version:        3.1.3
 Release:        0
 Summary:        MariaDB connector in C
 License:        LGPL-2.1-or-later

++++++ absolute_path_fix.patch ++++++
--- /var/tmp/diff_new_pack.5uFlD7/_old  2019-08-15 12:25:34.914603475 +0200
+++ /var/tmp/diff_new_pack.5uFlD7/_new  2019-08-15 12:25:34.914603475 +0200
@@ -2,18 +2,18 @@
 Date: Fri Mar  3 15:59:09 CET 2017
 Summary: Remove pure ugliness with paths
 
-Index: mariadb-connector-c-3.0.7-src/mariadb_config/mariadb_config.c.in
+Index: mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in
 ===================================================================
---- mariadb-connector-c-3.0.7-src.orig/mariadb_config/mariadb_config.c.in
-+++ mariadb-connector-c-3.0.7-src/mariadb_config/mariadb_config.c.in
+--- mariadb-connector-c-3.1.3-src.orig/mariadb_config/mariadb_config.c.in
++++ mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in
 @@ -5,13 +5,13 @@
  
  static char *mariadb_progname;
  
 -#define INCLUDE "-I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@ 
-I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@/mysql"
--#define LIBS    "-L@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/ -lmariadb 
@extra_dynamic_LDFLAGS@"
+-#define LIBS    "-L@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/ -lmariadb"
 +#define INCLUDE "-I@INSTALL_INCLUDEDIR@ -I@INSTALL_INCLUDEDIR@/mariadb"
-+#define LIBS    "-L@INSTALL_LIBDIR@ -lmariadb @extra_dynamic_LDFLAGS@"
++#define LIBS    "-L@INSTALL_LIBDIR@ -lmariadb"
  #define LIBS_SYS "@extra_dynamic_LDFLAGS@"
  #define CFLAGS  INCLUDE
  #define VERSION "@MARIADB_CLIENT_VERSION@"
@@ -23,10 +23,10 @@
  #define SOCKET  "@MARIADB_UNIX_ADDR@"
  #define PORT "@MARIADB_PORT@"
  #define TLS_LIBRARY_VERSION "@TLS_LIBRARY_VERSION@"
-Index: mariadb-connector-c-3.0.7-src/mariadb_config/libmariadb.pc.in
+Index: mariadb-connector-c-3.1.3-src/mariadb_config/libmariadb.pc.in
 ===================================================================
---- mariadb-connector-c-3.0.7-src.orig/mariadb_config/libmariadb.pc.in
-+++ mariadb-connector-c-3.0.7-src/mariadb_config/libmariadb.pc.in
+--- mariadb-connector-c-3.1.3-src.orig/mariadb_config/libmariadb.pc.in
++++ mariadb-connector-c-3.1.3-src/mariadb_config/libmariadb.pc.in
 @@ -7,8 +7,8 @@
  #
  

++++++ mariadb-connector-c-3.1.2-src.tar.gz -> 
mariadb-connector-c-3.1.3-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.2-src/CMakeLists.txt 
new/mariadb-connector-c-3.1.3-src/CMakeLists.txt
--- old/mariadb-connector-c-3.1.2-src/CMakeLists.txt    2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/CMakeLists.txt    2019-07-25 
16:03:48.000000000 +0200
@@ -5,7 +5,7 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
 INCLUDE(CheckFunctionExists)
 IF(COMMAND CMAKE_POLICY)
-  SET(NEW_POLICIES CMP0003 CMP0022 CMP0023)
+  SET(NEW_POLICIES CMP0003 CMP0022 CMP0023 CMP0077)
   FOREACH(TYPE OLD NEW)
     FOREACH(P ${${TYPE}_POLICIES})
       IF(POLICY ${P})
@@ -36,7 +36,7 @@
 
 SET(CPACK_PACKAGE_VERSION_MAJOR 3)
 SET(CPACK_PACKAGE_VERSION_MINOR 1)
-SET(CPACK_PACKAGE_VERSION_PATCH 2)
+SET(CPACK_PACKAGE_VERSION_PATCH 3)
 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   +
@@ -67,6 +67,7 @@
 ###############
 
 INCLUDE(${CC_SOURCE_DIR}/cmake/misc.cmake)
+INCLUDE(FindCURL)
 
 IF(WITH_SIGNCODE)
   IF(WIN32 AND NOT SIGN_OPTIONS)
@@ -169,12 +170,14 @@
   SET(MARIADB_CLIENT_VERSION_MAJOR ${MAJOR_VERSION})
   SET(MARIADB_CLIENT_VERSION_MINOR ${MINOR_VERSION})
   SET(MARIADB_CLIENT_VERSION_PATCH ${PATCH_VERSION})
+  SET(MARIADB_CLIENT_VERSION_EXTRA ${EXTRA_VERSION})
 ELSE()
   SET(MARIADB_CLIENT_VERSION_MAJOR "10")
   SET(MARIADB_CLIENT_VERSION_MINOR "4")
   SET(MARIADB_CLIENT_VERSION_PATCH "3")
+  SET(MARIADB_CLIENT_VERSION_EXTRA "")
 ENDIF()
-SET(MARIADB_CLIENT_VERSION 
"${MARIADB_CLIENT_VERSION_MAJOR}.${MARIADB_CLIENT_VERSION_MINOR}.${MARIADB_CLIENT_VERSION_PATCH}")
+SET(MARIADB_CLIENT_VERSION 
"${MARIADB_CLIENT_VERSION_MAJOR}.${MARIADB_CLIENT_VERSION_MINOR}.${MARIADB_CLIENT_VERSION_PATCH}${MARIADB_CLIENT_VERSION_EXTRA}")
 SET(MARIADB_BASE_VERSION 
"mariadb-${MARIADB_CLIENT_VERSION_MAJOR}.${MARIADB_CLIENT_VERSION_MINOR}")
 MATH(EXPR MARIADB_VERSION_ID "${MARIADB_CLIENT_VERSION_MAJOR} * 10000 +
                               ${MARIADB_CLIENT_VERSION_MINOR} * 100   +
@@ -189,7 +192,7 @@
 
 INCLUDE("${CC_SOURCE_DIR}/cmake/install.cmake")
 IF(NOT PLUGINDIR)
-  SET(PLUGINDIR "${INSTALL_PLUGINDIR}")
+  SET(PLUGINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR}")
 ENDIF()
 
 # todo: we don't character sets in share - all is compiled in
@@ -290,8 +293,12 @@
       ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS)
       SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c")
       SET(SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
+      IF(WIN32)
+        CHECK_INCLUDE_FILES (${OPENSSL_INCLUDE_DIR}/openssl/applink.c 
HAVE_OPENSSL_APPLINK_C)
+      ENDIF()
       INCLUDE_DIRECTORIES(BEFORE ${OPENSSL_INCLUDE_DIR})
 
+
       TRY_RUN(LIBRESSL_RESULT HAVE_LIBRESSL
               ${CMAKE_BINARY_DIR}
               ${CC_SOURCE_DIR}/cmake/libressl_version.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.2-src/azure-pipelines.yml 
new/mariadb-connector-c-3.1.3-src/azure-pipelines.yml
--- old/mariadb-connector-c-3.1.2-src/azure-pipelines.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/mariadb-connector-c-3.1.3-src/azure-pipelines.yml       2019-07-25 
16:03:48.000000000 +0200
@@ -0,0 +1,233 @@
+resources:
+  containers:
+
+    - container: ubuntu-1804
+      image: ubuntu:18.04
+      options: "--name ubuntu-1804 --add-host=mariadb.example.com:127.0.0.1 -v 
/usr/bin/docker:/tmp/docker:ro"
+
+jobs:
+
+  - job: SSLFiles
+    displayName: 'Creating SSL Files'
+    pool:
+      vmImage: 'ubuntu-16.04'
+      container: $[ variables['containerImage'] ]
+    steps:
+      - script: |
+          java --version
+          mkdir tmp
+          chmod 777 .travis/gen-ssl.sh
+          .travis/gen-ssl.sh mariadb.example.com tmp
+          cp -R tmp $BUILD_ARTIFACTSTAGINGDIRECTORY
+        displayName: 'create SSL certificates'
+
+      - task: PublishPipelineArtifact@0
+        inputs:
+          targetPath: '$(Build.ArtifactStagingDirectory)'
+          artifactName: ssl_certs
+
+  - job: windowsTest
+    displayName: 'test windows'
+    pool:
+      vmImage: 'windows-2019'
+    dependsOn:
+      - SSLFiles
+    steps:
+      - task: DownloadPipelineArtifact@2
+        displayName: 'Download SSL files'
+        inputs:
+          artifactName: ssl_certs
+          targetPath: $(System.DefaultWorkingDirectory)
+
+      - task: DownloadPipelineArtifact@2
+        displayName: 'Download 10.4 server'
+        inputs:
+          source: 'specific'
+          project: '550599d3-6165-4abd-8c86-e3f7e53a1847'
+          artifact: 'Windows'
+          pipeline: 3
+          runVersion: 'latestFromBranch'
+          runBranch: 'refs/heads/10.4-enterprise'
+          downloadPath: $(System.DefaultWorkingDirectory)
+
+      - script: |
+          for /f %%a in ('dir /B 
$(System.DefaultWorkingDirectory)\win_build\mariadb-enterprise-10.*-winx64.msi')
 do set servername=$(System.DefaultWorkingDirectory)\win_build\%%a
+          echo %servername%
+          msiexec /i %servername% INSTALLDIR=c:\projects\server 
SERVICENAME=mariadb ALLOWREMOTEROOTACCESS=true /qn
+          c:\projects\server\bin\mysql.exe -e "create database testc" 
--user=root
+          c:\projects\server\bin\mysql.exe -e "GRANT ALL on *.* to 
'someUser'@'%' identified by 'Passw@rd2' with grant option;" --user=root
+        displayName: 'install server'
+
+      - script: |
+          echo 127.0.0.1 mariadb.example.com >> 
%WINDIR%\System32\Drivers\Etc\Hosts
+        displayName: 'set hostname'
+
+      - script: |
+          cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=RelWithDebInfo
+          cmake --build . --config RelWithDebInfo
+        displayName: 'build connector'
+
+      - script: |
+          cd $(System.DefaultWorkingDirectory)\unittest\libmariadb
+          set 
MARIADB_PLUGIN_DIR=$(System.DefaultWorkingDirectory)\plugins\lib\RelWithDebInfo
+          ctest -V
+          if %ERRORLEVEL% EQU 0 (
+            echo Success
+          ) else (
+            echo exit code is %errorlevel%
+            exit /b %errorlevel%
+          )
+        displayName: 'run tests'
+        env:
+          MYSQL_TEST_HOST: "mariadb.example.com"
+          MYSQL_TEST_USER: 'someUser'
+          MYSQL_TEST_PASSWD: 'Passw@rd2'
+          MYSQL_TEST_DB: 'testc'
+          MYSQL_TEST_PORT: 3306
+          TEST_SSL_CA_FILE: "$(System.DefaultWorkingDirectory)/tmp/server.crt"
+          TEST_SSL_CLIENT_KEY_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client.key"
+          TEST_SSL_CLIENT_CERT_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client.crt"
+          TEST_SSL_CLIENT_KEYSTORE_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client-keystore.p12"
+
+  - job: RunInContainer
+    pool:
+      vmImage: 'ubuntu-16.04'
+    displayName: 'test ubuntu bionic'
+    dependsOn:
+      - SSLFiles
+    strategy:
+      matrix:
+        ubuntu-1804:
+          containerImage: ubuntu-1804
+          containerName: bionic
+
+    container: $[variables['containerImage']]
+
+    steps:
+
+      - task: DownloadPipelineArtifact@2
+        inputs:
+          artifactName: ssl_certs
+          targetPath: $(System.DefaultWorkingDirectory)
+
+      - script: /tmp/docker exec -t -u 0 $(containerImage) sh -c "apt-get 
update && DEBIAN_FRONTEND=noninteractive apt-get -o 
Dpkg::Options::="--force-confold" -y install sudo"
+        displayName: Set up sudo
+
+      - task: DownloadPipelineArtifact@2
+        displayName: 'Download 10.4 enterprise server artifact files'
+        inputs:
+          source: 'specific'
+          project: '550599d3-6165-4abd-8c86-e3f7e53a1847'
+          artifact: '$(containerImage)'
+          pipeline: 3
+          runVersion: 'latestFromBranch'
+          runBranch: 'refs/heads/10.4-enterprise'
+          downloadPath: $(System.DefaultWorkingDirectory)
+
+      - task: DownloadPipelineArtifact@2
+        displayName: 'Download galera server artifact files'
+        inputs:
+          source: 'specific'
+          project: '550599d3-6165-4abd-8c86-e3f7e53a1847'
+          artifact: $(containerImage)
+          runVersion: 'latestFromBranch'
+          pipeline: 2
+          runBranch: 'refs/heads/es-mariadb-4.x'
+          downloadPath: $(System.DefaultWorkingDirectory)
+
+
+      - script: |
+          tar xf mariadb-enterprise*
+
+          sudo ln -fs /usr/share/zoneinfo/UTC /etc/localtime
+
+          sudo apt-get update && sudo apt-get install -y 
--no-install-recommends apt-transport-https ca-certificates tzdata pwgen
+          export DEBIAN_FRONTEND="noninteractive"
+          sudo debconf-set-selections <<< "mariadb-server-10.4 
mysql-server/root_password password P4ssw@rd"
+          sudo debconf-set-selections <<< "mariadb-server-10.4 
mysql-server/root_password_again password P4ssw@rd"
+          sudo apt-get update -y
+          sudo apt-get install --allow-unauthenticated -f -y libssl-dev 
libaio1 libaio-dev libxml2 libcurl4 curl libc-dev linux-libc-dev libc-dev-bin 
libdbi-perl rsync socat libnuma1 zlib1g-dev libreadline5 libjemalloc1 
libsnappy1v5 libcrack2 gawk lsof psmisc perl libreadline5
+
+          cd mariadb-enterprise*/
+          sudo groupadd mysql
+          sudo useradd -g mysql mysql
+
+          export PROJ_PATH=`pwd`
+          echo $PROJ_PATH
+
+          cat <<EOT >> my.cnf
+          [mysqld]
+          port=3306
+          max_allowed_packet=16M
+          datadir=$PROJ_PATH/data
+          socket=/tmp/mysql.sock
+          user=mysql
+          ssl-ca=$(System.DefaultWorkingDirectory)/tmp/ca.crt
+          ssl-cert=$(System.DefaultWorkingDirectory)/tmp/server.crt
+          ssl-key=$(System.DefaultWorkingDirectory)/tmp/server.key
+          EOT
+
+          sudo chown mysql $PROJ_PATH/my.cnf
+          sudo tail -n 5000 $PROJ_PATH/my.cnf
+
+          sudo chmod 777 $PROJ_PATH
+          sudo ln -s $PROJ_PATH /usr/local/mysql
+
+          sudo ./scripts/mysql_install_db --defaults-file=$PROJ_PATH/my.cnf 
--user=mysql
+          sudo chown -R root .
+          sudo chown -R mysql data
+
+          export PATH=$PATH:$PROJ_PATH/bin/
+
+        env:
+          WORKING_DIR: $(System.DefaultWorkingDirectory)
+        displayName: 'install server'
+
+      - script: |
+          sudo apt-get install -f -y make cmake
+          cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_SSL=OPENSSL 
-DCERT_PATH=$(System.DefaultWorkingDirectory)/tmp
+          make
+        displayName: 'Build'
+
+      - script: |
+          cd mariadb-enterprise*/
+          sudo ./bin/mysqld --defaults-file=./my.cnf &
+
+          for i in {30..0}; do
+               if sudo ./bin/mysql -e "SELECT 1" &> /dev/null; then
+                   echo 'MySQL connected...'
+                       break
+               fi
+               echo 'MySQL init process in progress...'
+               sleep 1
+          done
+          if [ "$i" = 0 ]; then
+               echo >&2 'MySQL init process failed.'
+            sudo ./bin/mysql -e "SELECT 1"
+               exit 1
+          fi
+
+          sudo ./bin/mysql -e "CREATE USER 'someUser'@'%' identified by 
'Passw@rd2';"
+          sudo ./bin/mysql -e "GRANT ALL on *.* to 'someUser'@'%' identified 
by 'Passw@rd2' with grant option;"
+          sudo ./bin/mysql -e "CREATE DATABASE testc;"
+
+          echo "Running tests"
+          cd ../unittest/libmariadb
+          ctest -V
+          if [ $? -ne 0 ]; then
+            exit 1
+          fi
+          cd $(System.DefaultWorkingDirectory)/mariadb-enterprise*/
+          sudo ./bin/mysqladmin shutdown
+        env:
+          MYSQL_TEST_HOST: mariadb.example.com
+          MYSQL_TEST_DB: testc
+          MYSQL_TEST_USER: 'someUser'
+          MYSQL_TEST_PORT: 3306
+          MYSQL_TEST_TRAVIS: 1
+          MYSQL_TEST_PASSWD: 'Passw@rd2'
+          TEST_SSL_CA_FILE: "$(System.DefaultWorkingDirectory)/tmp/server.crt"
+          TEST_SSL_CLIENT_KEY_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client.key"
+          TEST_SSL_CLIENT_CERT_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client.crt"
+          TEST_SSL_CLIENT_KEYSTORE_FILE: 
"$(System.DefaultWorkingDirectory)/tmp/client-keystore.p12"
+        displayName: 'run tests'
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.2-src/include/ma_config.h.in 
new/mariadb-connector-c-3.1.3-src/include/ma_config.h.in
--- old/mariadb-connector-c-3.1.2-src/include/ma_config.h.in    2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/include/ma_config.h.in    2019-07-25 
16:03:48.000000000 +0200
@@ -2,6 +2,7 @@
 /*
  * Include file constants (processed in LibmysqlIncludeFiles.txt 1
  */
+#cmakedefine HAVE_OPENSSL_APPLINK_C 1
 #cmakedefine HAVE_ALLOCA_H 1
 #cmakedefine HAVE_BIGENDIAN 1
 #cmakedefine HAVE_SETLOCALE 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/include/mariadb_version.h.in 
new/mariadb-connector-c-3.1.3-src/include/mariadb_version.h.in
--- old/mariadb-connector-c-3.1.2-src/include/mariadb_version.h.in      
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/include/mariadb_version.h.in      
2019-07-25 16:03:48.000000000 +0200
@@ -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 "@PLUGINDIR@"
 
 /* mysqld compile time options */
 #ifndef MYSQL_CHARSET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/ma_client_plugin.c.in 
new/mariadb-connector-c-3.1.3-src/libmariadb/ma_client_plugin.c.in
--- old/mariadb-connector-c-3.1.2-src/libmariadb/ma_client_plugin.c.in  
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/ma_client_plugin.c.in  
2019-07-25 16:03:48.000000000 +0200
@@ -389,6 +389,13 @@
            mysql->options.extension->plugin_dir : (env_plugin_dir) ? 
env_plugin_dir :
            MARIADB_PLUGINDIR, name, SO_EXT);
 
+  if (strpbrk(name, "()[]!@#$%^&/*;.,'?\\"))
+  {
+    errmsg= "invalid plugin name";
+    goto err;
+  }
+
+
   /* Open new dll handle */
   if (!(dlhandle= dlopen((const char *)dlpath, RTLD_NOW)))
   {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.2-src/libmariadb/ma_dtoa.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/ma_dtoa.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/ma_dtoa.c      2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/ma_dtoa.c      2019-07-25 
16:03:48.000000000 +0200
@@ -512,8 +512,8 @@
 
 typedef union { double d; ULong L[2]; } U;
 
-#if defined(WORDS_BIGENDIAN) || (defined(__FLOAT_WORD_ORDER) &&        \
-                                 (__FLOAT_WORD_ORDER == __BIG_ENDIAN))
+#if defined(HAVE_BIGENDIAN) || defined(WORDS_BIGENDIAN) || \
+   (defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN))
 #define word0(x) (x)->L[0]
 #define word1(x) (x)->L[1]
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/mariadb_lib.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/mariadb_lib.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/mariadb_lib.c  2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/mariadb_lib.c  2019-07-25 
16:03:48.000000000 +0200
@@ -3351,12 +3351,12 @@
 
 my_bool STDCALL mysql_commit(MYSQL *mysql)
 {
-  return((my_bool)mysql_real_query(mysql, "COMMIT", (unsigned long) 
sizeof("COMMIT")));
+  return((my_bool)mysql_real_query(mysql, "COMMIT", (unsigned 
long)strlen("COMMIT")));
 }
 
 my_bool STDCALL mysql_rollback(MYSQL *mysql)
 {
-  return((my_bool)mysql_real_query(mysql, "ROLLBACK", (unsigned 
long)sizeof("ROLLBACK")));
+  return((my_bool)mysql_real_query(mysql, "ROLLBACK", (unsigned 
long)strlen("ROLLBACK")));
 }
 
 my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/mariadb_stmt.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/mariadb_stmt.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/mariadb_stmt.c 2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/mariadb_stmt.c 2019-07-25 
16:03:48.000000000 +0200
@@ -56,6 +56,9 @@
 #include <mysql/client_plugin.h>
 #include <ma_common.h>
 
+#define UPDATE_STMT_ERROR(stmt)\
+SET_CLIENT_STMT_ERROR((stmt), (stmt)->mysql->net.last_errno, 
(stmt)->mysql->net.sqlstate, (stmt)->mysql->net.last_error)
+
 #define STMT_NUM_OFS(type, a,r) ((type *)(a))[r]
 #define MADB_RESET_ERROR     1
 #define MADB_RESET_LONGDATA  2
@@ -310,7 +313,10 @@
     int4store(buf + STMT_ID_LENGTH, stmt->prefetch_rows);
 
     if (stmt->mysql->methods->db_command(stmt->mysql, COM_STMT_FETCH, (char 
*)buf, sizeof(buf), 1, stmt))
+    {
+      UPDATE_STMT_ERROR(stmt);
       return(1);
+    }
 
     /* free previously allocated buffer */
     ma_free_root(&result->alloc, MYF(MY_KEEP_PREALLOC));
@@ -1367,7 +1373,7 @@
       if (stmt->mysql->methods->db_command(stmt->mysql,COM_STMT_CLOSE, stmt_id,
                                            sizeof(stmt_id), 1, stmt))
       {
-        SET_CLIENT_STMT_ERROR(stmt, stmt->mysql->net.last_errno, 
stmt->mysql->net.sqlstate, stmt->mysql->net.last_error);
+        UPDATE_STMT_ERROR(stmt);
         return 1;
       }
     }
@@ -1711,8 +1717,7 @@
 
 fail:
   stmt->state= MYSQL_STMT_INITTED;
-  SET_CLIENT_STMT_ERROR(stmt, mysql->net.last_errno, mysql->net.sqlstate,
-      mysql->net.last_error);
+  UPDATE_STMT_ERROR(stmt);
   return(rc);
 }
 
@@ -1751,8 +1756,10 @@
 
     if (stmt->mysql->methods->db_command(stmt->mysql, COM_STMT_FETCH,
                                          buff, sizeof(buff), 1, stmt))
+    {
+      UPDATE_STMT_ERROR(stmt);
       return(1);
-    /* todo: cursor */
+    }
   }
   else if (stmt->mysql->status != MYSQL_STATUS_STMT_RESULT)
   {
@@ -1926,7 +1933,8 @@
       }
     }
 
-    if (stmt->upsert_status.server_status & SERVER_STATUS_CURSOR_EXISTS)
+    if ((stmt->upsert_status.server_status & SERVER_STATUS_CURSOR_EXISTS)  &&
+        (stmt->flags & CURSOR_TYPE_READ_ONLY)) 
     {
       stmt->cursor_exists = TRUE;
       mysql->status = MYSQL_STATUS_READY;
@@ -2046,8 +2054,7 @@
 
   if (ret)
   {
-    SET_CLIENT_STMT_ERROR(stmt, mysql->net.last_errno, mysql->net.sqlstate,
-    mysql->net.last_error);
+    UPDATE_STMT_ERROR(stmt);
     return(1);
   }
 
@@ -2118,8 +2125,7 @@
         if ((ret= stmt->mysql->methods->db_command(mysql,COM_STMT_RESET, (char 
*)cmd_buf,
                                                    sizeof(cmd_buf), 0, stmt)))
         {
-          SET_CLIENT_STMT_ERROR(stmt, mysql->net.last_errno, 
mysql->net.sqlstate,
-              mysql->net.last_error);
+          UPDATE_STMT_ERROR(stmt);
           return(ret);
         }
       }
@@ -2271,6 +2277,8 @@
     stmt->params[param_number].long_data_used= 1;
     ret= stmt->mysql->methods->db_command(stmt->mysql, COM_STMT_SEND_LONG_DATA,
                                          (char *)cmd_buff, packet_len, 1, 
stmt);
+    if (ret)
+      UPDATE_STMT_ERROR(stmt);
     free(cmd_buff);
     return(ret);
   }
@@ -2481,8 +2489,7 @@
 fail:
   /* check if we need to set error message */
   if (!mysql_stmt_errno(stmt))
-    SET_CLIENT_STMT_ERROR(stmt, mysql->net.last_errno, mysql->net.sqlstate,
-        mysql->net.last_error);
+    UPDATE_STMT_ERROR(stmt);
   do {
     stmt->mysql->methods->db_stmt_flush_unbuffered(stmt);
   } while(mysql_stmt_more_results(stmt));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/secure/gnutls.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/secure/gnutls.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/secure/gnutls.c        
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/secure/gnutls.c        
2019-07-25 16:03:48.000000000 +0200
@@ -1025,11 +1025,15 @@
     strcat(tls_versions, ":+VERS-TLS1.1");
   if (strstr(tls_version_option, "TLSv1.2"))
     strcat(tls_versions, ":+VERS-TLS1.2");
+#if GNUTLS_VERSION_NUMBER > 0x030605
+  if (strstr(tls_version_option, "TLSv1.3"))
+    strcat(tls_versions, ":+VERS-TLS1.3");
+#endif
 end:
   if (tls_versions[0])
     snprintf(priority_string, prio_len - 1, "-VERS-TLS-ALL%s:NORMAL", 
tls_versions);
   else
-    strncpy(priority_string, "NORMAL", prio_len - 1);
+    strncpy(priority_string, "NORMAL:+VERS-ALL", prio_len - 1);
   return strlen(priority_string);
 }
 
@@ -1062,62 +1066,10 @@
   return gnutls_priority_set_direct(ssl, prio , &err);
 }
 
-static int ma_tls_load_cert(const char *filename,
-                            enum ma_pem_type type,
-                            const char *password,
-                            void *ptr)
-{
-  gnutls_datum_t data;
-  int rc;
-
-  data.data= 0;
-
-  if ((rc= gnutls_load_file(filename, &data)) < 0)
-    goto error;
-
-  switch(type) {
-  case MA_TLS_PEM_CERT:
-  {
-    gnutls_x509_crt_t cert;
-    if ((rc= gnutls_x509_crt_init(&cert)) < 0)
-      goto error;
-    if ((rc= gnutls_x509_crt_import(cert, &data, GNUTLS_X509_FMT_PEM)))
-    {
-      gnutls_x509_crt_deinit(cert);
-      goto error;
-    }
-    *((gnutls_x509_crt_t *)ptr)= cert;
-    return 0;
-  }
-  case MA_TLS_PEM_KEY:
-  {
-    gnutls_x509_privkey_t key;
-    if ((rc= gnutls_x509_privkey_init(&key)) < 0)
-      goto error;
-    if ((rc= gnutls_x509_privkey_import2(key, &data, 
-                                         GNUTLS_X509_FMT_PEM,
-                                         password, 0)) < 0)
-    {
-      gnutls_x509_privkey_deinit(key);
-      goto error;
-    }
-    *((gnutls_x509_privkey_t *)ptr)= key;
-  }
-  default:
-    break;
-  }
-error:
-  if (data.data)
-    gnutls_free(data.data);
-  return rc;
-}
-
 static int ma_tls_set_certs(MYSQL *mysql,
                             gnutls_certificate_credentials_t ctx)
 {
   int  ssl_error= 0;
-  gnutls_x509_privkey_t key= 0;
-  gnutls_x509_crt_t cert= 0;
 
   if (mysql->options.ssl_ca)
   {
@@ -1135,53 +1087,20 @@
   {
     char *keyfile= mysql->options.ssl_key;
     char *certfile= mysql->options.ssl_cert;
-    unsigned char key_id1[65], key_id2[65];
-    size_t key_id1_len, key_id2_len;
-
+    
     if (!certfile)
       certfile= keyfile;
     else if (!keyfile)
       keyfile= certfile;
 
-    if ((ssl_error= ma_tls_load_cert(keyfile, MA_TLS_PEM_KEY,
-                                     mysql->options.extension ?
-                                     mysql->options.extension->tls_pw : NULL,
-                                     &key)) < 0)
-      goto error;
-    if ((ssl_error= ma_tls_load_cert(certfile, MA_TLS_PEM_CERT,
-                                     NULL, &cert)) < 0)
-      goto error;
-
-    /* check if private key corresponds to certificate */
-    key_id1_len= key_id2_len= sizeof(key_id1);
-    if ((ssl_error= gnutls_x509_crt_get_key_id(cert, 0, 
-                                               key_id1, &key_id1_len)) < 0 ||
-        (ssl_error= gnutls_x509_privkey_get_key_id(key, 0, 
-                                                   key_id2, &key_id2_len)) < 0)
-      goto error;
-
-    if (key_id1_len != key_id2_len ||
-        memcmp(key_id1, key_id2, key_id1_len) != 0)
-    {
-      ssl_error= GNUTLS_E_CERTIFICATE_KEY_MISMATCH;
-      goto error;
-    }
-
     /* load cert/key into context */
-    if ((ssl_error= gnutls_certificate_set_x509_key(ctx,
-                                                    &cert,
-                                                    1,
-                                                    key)) < 0)
+    if ((ssl_error= gnutls_certificate_set_x509_key_file2(ctx,
+                                certfile, keyfile, GNUTLS_X509_FMT_PEM,
+                                 mysql->options.extension ? 
mysql->options.extension->tls_pw : NULL, 0)) < 0)
       goto error;
   }
 
-
-  return ssl_error;
 error:
-  if (key)
-    gnutls_x509_privkey_deinit(key);
-  if (cert)
-    gnutls_x509_crt_deinit(cert);
   return ssl_error;
 }
 
@@ -1225,6 +1144,7 @@
 error:
   free_gnutls_data(data);
   ma_tls_set_error(mysql, ssl, ssl_error);
+  gnutls_certificate_free_credentials(ctx);
   if (ssl)
     gnutls_deinit(ssl);
   pthread_mutex_unlock(&LOCK_gnutls_config);
@@ -1273,6 +1193,7 @@
   if (!(blocking= pvio->methods->is_blocking(pvio)))
     pvio->methods->blocking(pvio, TRUE, 0);
 
+
 #ifdef GNUTLS_EXTERNAL_TRANSPORT
   /* we don't use GnuTLS read/write functions */
   gnutls_transport_set_ptr(ssl, pvio);
@@ -1354,12 +1275,32 @@
 
 ssize_t ma_tls_read(MARIADB_TLS *ctls, const uchar* buffer, size_t length)
 {
-  return gnutls_record_recv((gnutls_session_t )ctls->ssl, (void *)buffer, 
length);
+  ssize_t rc;
+  MARIADB_PVIO *pvio= ctls->pvio;
+
+  while ((rc= gnutls_record_recv((gnutls_session_t)ctls->ssl, (void *)buffer, 
length)) <= 0)
+  {
+    if (rc != GNUTLS_E_AGAIN && rc != GNUTLS_E_INTERRUPTED)
+      return rc;
+    if (pvio->methods->wait_io_or_timeout(pvio, TRUE, 
pvio->mysql->options.read_timeout) < 1)
+      return rc;
+  }
+  return rc;
 }
 
 ssize_t ma_tls_write(MARIADB_TLS *ctls, const uchar* buffer, size_t length)
 { 
-  return gnutls_record_send((gnutls_session_t )ctls->ssl, (void *)buffer, 
length);
+  ssize_t rc;
+  MARIADB_PVIO *pvio= ctls->pvio;
+
+  while ((rc= gnutls_record_send((gnutls_session_t)ctls->ssl, (void *)buffer, 
length)) <= 0)
+  {
+    if (rc != GNUTLS_E_AGAIN && rc != GNUTLS_E_INTERRUPTED)
+      return rc;
+    if (pvio->methods->wait_io_or_timeout(pvio, TRUE, 
pvio->mysql->options.write_timeout) < 1)
+      return rc;
+  }
+  return rc;
 }
 
 my_bool ma_tls_close(MARIADB_TLS *ctls)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/secure/openssl.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/secure/openssl.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/secure/openssl.c       
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/secure/openssl.c       
2019-07-25 16:03:48.000000000 +0200
@@ -30,6 +30,10 @@
 #include <openssl/conf.h>
 #include <openssl/md4.h>
 
+#if defined(_WIN32) && !defined(_OPENSSL_Applink) && 
defined(HAVE_OPENSSL_APPLINK_C)
+#include <openssl/applink.c>
+#endif
+
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
 #include <openssl/x509v3.h>
 #define HAVE_OPENSSL_CHECK_HOST 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/libmariadb/secure/openssl_crypt.c 
new/mariadb-connector-c-3.1.3-src/libmariadb/secure/openssl_crypt.c
--- old/mariadb-connector-c-3.1.2-src/libmariadb/secure/openssl_crypt.c 
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/libmariadb/secure/openssl_crypt.c 
2019-07-25 16:03:48.000000000 +0200
@@ -16,6 +16,7 @@
    or write to the Free Software Foundation, Inc.,
    51 Franklin St., Fifth Floor, Boston, MA 02110, USA
 */
+#include <ma_global.h>
 #include <ma_crypt.h>
 #include <openssl/evp.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/mariadb_config/CMakeLists.txt 
new/mariadb-connector-c-3.1.3-src/mariadb_config/CMakeLists.txt
--- old/mariadb-connector-c-3.1.2-src/mariadb_config/CMakeLists.txt     
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/mariadb_config/CMakeLists.txt     
2019-07-25 16:03:48.000000000 +0200
@@ -34,7 +34,7 @@
   GET_LIB_NAME(${LIB_NAME} LIB_OUT)
   SET(extra_dynamic_LDFLAGS "${extra_dynamic_LDFLAGS} ${LIB_OUT}")
 ENDFOREACH()
-STRING(STRIP ${extra_dynamic_LDFLAGS} extra_dynamic_LDFLAGS)
+STRING(STRIP "${extra_dynamic_LDFLAGS}" extra_dynamic_LDFLAGS)
 LIST(REMOVE_DUPLICATES extra_dynamic_LDFLAGS)
 
 IF(UNIX AND NOT APPLE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/mariadb_config/libmariadb.pc.in 
new/mariadb-connector-c-3.1.3-src/mariadb_config/libmariadb.pc.in
--- old/mariadb-connector-c-3.1.2-src/mariadb_config/libmariadb.pc.in   
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/mariadb_config/libmariadb.pc.in   
2019-07-25 16:03:48.000000000 +0200
@@ -14,6 +14,7 @@
 Version: @CPACK_PACKAGE_VERSION@
 Description: MariaDB Connector/C dynamic library
 Cflags: -I${includedir}
-Libs: -L${libdir} -lmariadb @extra_dynamic_LDFLAGS@
+Libs: -L${libdir} -lmariadb
+Libs.private: @extra_dynamic_LDFLAGS@
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/mariadb_config/mariadb_config.c.in 
new/mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in
--- old/mariadb-connector-c-3.1.2-src/mariadb_config/mariadb_config.c.in        
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in        
2019-07-25 16:03:48.000000000 +0200
@@ -6,7 +6,7 @@
 static char *mariadb_progname;
 
 #define INCLUDE "-I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@ 
-I@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@/mysql"
-#define LIBS    "-L@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/ -lmariadb 
@extra_dynamic_LDFLAGS@"
+#define LIBS    "-L@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@/ -lmariadb"
 #define LIBS_SYS "@extra_dynamic_LDFLAGS@"
 #define CFLAGS  INCLUDE
 #define VERSION "@MARIADB_CLIENT_VERSION@"
@@ -78,7 +78,7 @@
   while(1)
   {
     int option_index= 0;
-    c= getopt_long(argc, argv, "abcdefghij", long_options, &option_index);
+    c= getopt_long(argc, argv, "abcdefghijkl", long_options, &option_index);
 
     switch(c) {
     case 'a':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/plugins/auth/CMakeLists.txt 
new/mariadb-connector-c-3.1.3-src/plugins/auth/CMakeLists.txt
--- old/mariadb-connector-c-3.1.2-src/plugins/auth/CMakeLists.txt       
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/plugins/auth/CMakeLists.txt       
2019-07-25 16:03:48.000000000 +0200
@@ -50,8 +50,7 @@
                         ${REF10_SOURCES}
                         ${CRYPT_SOURCE}
                 INCLUDES ${REF10_DIR}
-                COMPILE_OPTIONS -DMYSQL_CLIENT=1
-                LIBRARIES ${ED25519_LIBS})
+                COMPILE_OPTIONS -DMYSQL_CLIENT=1)
   IF(MSVC)
      # Silence conversion (integer truncantion) warnings from reference code
      SET_SOURCE_FILES_PROPERTIES(${REF10_SOURCES} PROPERTY COMPILE_FLAGS 
"-DMYSQL_CLIENT=1 /wd4244 /wd4146")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/plugins/auth/caching_sha2_pw.c 
new/mariadb-connector-c-3.1.3-src/plugins/auth/caching_sha2_pw.c
--- old/mariadb-connector-c-3.1.2-src/plugins/auth/caching_sha2_pw.c    
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/plugins/auth/caching_sha2_pw.c    
2019-07-25 16:03:48.000000000 +0200
@@ -23,6 +23,9 @@
 #ifdef _WIN32
 #if !defined(HAVE_OPENSSL)
 #define HAVE_WINCRYPT
+#else
+#pragma comment(lib, "crypt32.lib")
+#pragma comment(lib, "ws2_32.lib")
 #endif
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mariadb-connector-c-3.1.2-src/plugins/auth/my_auth.c 
new/mariadb-connector-c-3.1.3-src/plugins/auth/my_auth.c
--- old/mariadb-connector-c-3.1.2-src/plugins/auth/my_auth.c    2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/plugins/auth/my_auth.c    2019-07-25 
16:03:48.000000000 +0200
@@ -394,7 +394,9 @@
   }
 
   /* otherwise read the data */
-  pkt_len= ma_net_safe_read(mysql);
+  if ((pkt_len= ma_net_safe_read(mysql)) == packet_error)
+    return (int)packet_error;
+
   mpvio->last_read_packet_len= pkt_len;
   *buf= mysql->net.read_pos;
 
@@ -591,7 +593,8 @@
   mysql->net.read_pos[0]= 0;
   res= auth_plugin->authenticate_user((struct st_plugin_vio *)&mpvio, mysql);
 
-  if (res > CR_OK && mysql->net.read_pos[0] != 254)
+  if ((res == CR_ERROR && !mysql->net.buff) ||
+      (res > CR_OK && mysql->net.read_pos[0] != 254))
   {
     /*
       the plugin returned an error. write it down in mysql,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/plugins/auth/sha256_pw.c 
new/mariadb-connector-c-3.1.3-src/plugins/auth/sha256_pw.c
--- old/mariadb-connector-c-3.1.2-src/plugins/auth/sha256_pw.c  2019-06-14 
13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/plugins/auth/sha256_pw.c  2019-07-25 
16:03:48.000000000 +0200
@@ -23,6 +23,9 @@
 #ifdef _WIN32
 #if !defined(HAVE_OPENSSL)
 #define HAVE_WINCRYPT
+#else
+#pragma comment(lib, "crypt32.lib")
+#pragma comment(lib, "ws2_32.lib")
 #endif
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/plugins/pvio/pvio_socket.c 
new/mariadb-connector-c-3.1.3-src/plugins/pvio/pvio_socket.c
--- old/mariadb-connector-c-3.1.2-src/plugins/pvio/pvio_socket.c        
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/plugins/pvio/pvio_socket.c        
2019-07-25 16:03:48.000000000 +0200
@@ -780,7 +780,7 @@
     /* Abstract socket */
     if (cinfo->unix_socket[0] == '@')
     {
-      strncpy(UNIXaddr.sun_path + 1, cinfo->unix_socket + 1, 107);
+      strncpy(UNIXaddr.sun_path + 1, cinfo->unix_socket + 1, 106);
       port_length+= offsetof(struct sockaddr_un, sun_path);
     }
     else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/connection.c 
new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/connection.c
--- old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/connection.c  
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/connection.c  
2019-07-25 16:03:48.000000000 +0200
@@ -43,7 +43,7 @@
   fprintf(fp, "user=conc66\n");
   fprintf(fp, "port=3306\n");
   fprintf(fp, "enable-local-infile\n");
-  fprintf(fp, "password='test\\\";#test'\n");
+  fprintf(fp, "password='test@A1\\\";#test'\n");
 
   fclose(fp);
 
@@ -52,7 +52,7 @@
   rc= mysql_options(mysql, MYSQL_READ_DEFAULT_FILE, "./my-conc66-test.cnf");
   check_mysql_rc(rc, mysql);
 
-  sprintf(query, "GRANT ALL ON %s.* TO 'conc66'@'%s' IDENTIFIED BY 
'test\";#test'", schema, this_host ? this_host : "localhost");
+  sprintf(query, "GRANT ALL ON %s.* TO 'conc66'@'%s' IDENTIFIED BY 
'test@A1\";#test'", schema, this_host ? this_host : "localhost");
   rc= mysql_query(my, query);
   check_mysql_rc(rc, my);
   rc= mysql_query(my, "FLUSH PRIVILEGES");
@@ -800,7 +800,7 @@
   sprintf(query, "DROP USER '%s'@'%s'", username, bind_addr);
   rc= mysql_query(my, query);
 
-  sprintf(query, "CREATE USER '%s'@'%s'", username, bind_addr);
+  sprintf(query, "CREATE USER '%s'@'%s' IDENTIFIED BY '%s'", username, 
bind_addr, password);
   rc= mysql_query(my, query);
   check_mysql_rc(rc, my);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/my_test.h 
new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/my_test.h
--- old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/my_test.h     
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/my_test.h     
2019-07-25 16:03:48.000000000 +0200
@@ -35,6 +35,8 @@
 
 #ifndef WIN32
 #include <pthread.h>
+#else
+#include <io.h>
 #endif
 
 #ifndef OK
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/ps_bugs.c 
new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/ps_bugs.c
--- old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/ps_bugs.c     
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/ps_bugs.c     
2019-07-25 16:03:48.000000000 +0200
@@ -5042,8 +5042,78 @@
   return OK;
 }
 
+static int test_conc424(MYSQL *mysql)
+{
+  int rc;
+  MYSQL_STMT *stmt;
+  my_bool max_len= 1;
+
+  rc= mysql_query(mysql, "DROP TABLE IF EXISTS test_table1");
+  check_mysql_rc(rc, mysql);
+  rc= mysql_query(mysql, "CREATE TABLE test_table1 (test_int INT, b int)");
+  check_mysql_rc(rc, mysql);
+  rc= mysql_query(mysql, "INSERT INTO test_table1 values(10,11),(11,12)");
+  check_mysql_rc(rc, mysql);
+
+  rc= mysql_query(mysql, "DROP PROCEDURE IF EXISTS testCursor");
+  check_mysql_rc(rc, mysql);
+
+  rc= mysql_query(mysql, "CREATE PROCEDURE testCursor()\n"
+                  "BEGIN\n"
+                  "DECLARE test_int INT;\n"
+                  "DECLARE b INT;\n"
+                  "DECLARE done INT DEFAULT FALSE;\n"
+                  "DECLARE testCursor CURSOR\n"
+                  "FOR\n"
+                  "SELECT test_int,b FROM test_table1;\n"
+                  "DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;\n"
+                  "OPEN testCursor;\n"
+
+                  " read_loop: LOOP\n"
+                  "   FETCH testCursor INTO test_int, b;\n"
+                  "   IF done THEN\n"
+                  "     LEAVE read_loop;\n"
+                  "   END IF;\n"
+                  "   SELECT test_int,b;"
+                  " END LOOP;\n"
+                  "CLOSE testCursor;\n"
+                  "END");
+  check_mysql_rc(rc, mysql);
+
+  stmt= mysql_stmt_init(mysql);
+  rc= mysql_stmt_prepare(stmt, SL("CALL testCursor()"));
+  check_stmt_rc(rc, stmt);
+
+  rc= mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &max_len);
+  check_stmt_rc(rc, stmt);
+
+  rc= mysql_stmt_execute(stmt);
+  check_stmt_rc(rc, stmt);
+
+  do {
+    if (mysql_stmt_field_count(stmt))
+    {
+      MYSQL_RES *res= mysql_stmt_result_metadata(stmt);
+      rc= mysql_stmt_fetch(stmt);
+      FAIL_IF(rc, "Wrong return code");
+      mysql_free_result(res);
+    }
+    rc= mysql_stmt_next_result(stmt);
+
+  } while (!rc);
+
+  mysql_stmt_close(stmt);
+  rc= mysql_query(mysql, "DROP PROCEDURE testCursor");
+  check_mysql_rc(rc, mysql);
+
+  rc= mysql_query(mysql, "DROP TABLE test_table1");
+  check_mysql_rc(rc, mysql);
+
+  return OK;
+}
 
 struct my_tests_st my_tests[] = {
+  {"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},
   {"test_compress", test_compress, TEST_CONNECTION_NEW, CLIENT_COMPRESS, NULL, 
NULL},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/ssl.c.in 
new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/ssl.c.in
--- old/mariadb-connector-c-3.1.2-src/unittest/libmariadb/ssl.c.in      
2019-06-14 13:48:31.000000000 +0200
+++ new/mariadb-connector-c-3.1.3-src/unittest/libmariadb/ssl.c.in      
2019-07-25 16:03:48.000000000 +0200
@@ -796,6 +796,11 @@
   if (check_skip_ssl())
     return SKIP;
 
+#ifndef TEST_SSL_SHA1
+  diag("Fingerprint of server certificate not found");
+  return SKIP;
+#endif
+
   if (!ssl_cert_finger_print[0])
   {
     diag("No fingerprint available");
@@ -839,9 +844,9 @@
     return SKIP;
 
 #ifndef TEST_SSL_SHA1
+  diag("Fingerprint of server certificate not found");
   return SKIP;
 #endif
-
   if (!ssl_cert_finger_print[0])
   {
     diag("No fingerprint available");
@@ -1195,6 +1200,11 @@
   if (check_skip_ssl())
     return SKIP;
 
+#ifndef TEST_SSL_SHA1
+  diag("Fingerprint of server certificate not found");
+  return SKIP;
+#endif
+
   if (!ssl_cert_finger_print[0])
   {
     diag("No fingerprint available");
@@ -1248,12 +1258,10 @@
     const char *opt_tls_version;
     const char *expected;
   } combinations[]= {
-    {1, "TLSv1.0", "TLSv1.0"},
     {1, "TLSv1.1", "TLSv1.1"},
     {1, "TLSv1,TLSv1.1", "TLSv1.1"},
     {0, "TLSv1.2", "TLSv1.2"},
-    {0, NULL, "TLSv1.2"},
-    {0, "TLSv1.0,TLSv1.1,TLSv1.2", "TLSv1.2"},
+    {0, "TLSv1.1,TLSv1.2", "TLSv1.2"},
     {1, NULL, NULL}
   };
 
@@ -1357,7 +1365,6 @@
 #else
   {"test_schannel_cipher", test_schannel_cipher, TEST_CONNECTION_NEW, 0,  
NULL,  NULL},
 #endif
-
   {"test_conc386", test_conc386, TEST_CONNECTION_NEW, 0,  NULL,  NULL},
   {"drop_ssl_user", drop_ssl_user, TEST_CONNECTION_NEW, 0,  NULL,  NULL},
   {NULL, NULL, 0, 0, NULL, NULL}


++++++ private_library.patch ++++++
--- /var/tmp/diff_new_pack.5uFlD7/_old  2019-08-15 12:25:35.094603429 +0200
+++ /var/tmp/diff_new_pack.5uFlD7/_new  2019-08-15 12:25:35.098603428 +0200
@@ -8,10 +8,10 @@
 exports all symbols. With the exception of exported symbols, it is
 identical to the regular library.
 
-Index: mariadb-connector-c-3.1.2-src/libmariadb/CMakeLists.txt
+Index: mariadb-connector-c-3.1.3-src/libmariadb/CMakeLists.txt
 ===================================================================
---- mariadb-connector-c-3.1.2-src.orig/libmariadb/CMakeLists.txt
-+++ mariadb-connector-c-3.1.2-src/libmariadb/CMakeLists.txt
+--- mariadb-connector-c-3.1.3-src.orig/libmariadb/CMakeLists.txt
++++ mariadb-connector-c-3.1.3-src/libmariadb/CMakeLists.txt
 @@ -410,17 +410,25 @@ IF(CMAKE_SIZEOF_VOID_P EQUAL 8 AND MSVC)
    SET_TARGET_PROPERTIES(mariadbclient PROPERTIES STATIC_LIBRARY_FLAGS 
"/machine:x64")
  ENDIF()
@@ -49,14 +49,14 @@
  
  IF(WIN32)
     # On Windows, install PDB
-Index: mariadb-connector-c-3.1.2-src/mariadb_config/mariadb_config.c.in
+Index: mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in
 ===================================================================
---- mariadb-connector-c-3.1.2-src.orig/mariadb_config/mariadb_config.c.in
-+++ mariadb-connector-c-3.1.2-src/mariadb_config/mariadb_config.c.in
+--- mariadb-connector-c-3.1.3-src.orig/mariadb_config/mariadb_config.c.in
++++ mariadb-connector-c-3.1.3-src/mariadb_config/mariadb_config.c.in
 @@ -7,6 +7,8 @@ static char *mariadb_progname;
  
  #define INCLUDE "-I@INSTALL_INCLUDEDIR@ -I@INSTALL_INCLUDEDIR@/mariadb"
- #define LIBS    "-L@INSTALL_LIBDIR@ -lmariadb @extra_dynamic_LDFLAGS@"
+ #define LIBS    "-L@INSTALL_LIBDIR@ -lmariadb"
 +#define PRIVATE_LIBS "-L@INSTALL_LIBDIR@ -lmariadbprivate " \
 +                "@extra_dynamic_LDFLAGS@"
  #define LIBS_SYS "@extra_dynamic_LDFLAGS@"


Reply via email to