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@"