Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mariadb-connector-c for
openSUSE:Factory checked in at 2024-07-03 20:28:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mariadb-connector-c (Old)
and /work/SRC/openSUSE:Factory/.mariadb-connector-c.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mariadb-connector-c"
Wed Jul 3 20:28:36 2024 rev:48 rq:1184319 version:3.3.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/mariadb-connector-c/mariadb-connector-c.changes
2024-03-09 20:54:51.694977677 +0100
+++
/work/SRC/openSUSE:Factory/.mariadb-connector-c.new.18349/mariadb-connector-c.changes
2024-07-03 20:29:26.815191071 +0200
@@ -1,0 +2,7 @@
+Thu Jun 27 14:43:28 UTC 2024 - Antonio Teixeira <[email protected]>
+
+- Update to 3.3.10:
+ * https://mariadb.com/kb/en/mariadb-connector-c-3-3-10-release-notes/
+- Remove fix-build-gcc14.patch (fixed upstream)
+
+-------------------------------------------------------------------
Old:
----
fix-build-gcc14.patch
mariadb-connector-c-3.3.8-src.tar.gz
mariadb-connector-c-3.3.8-src.tar.gz.asc
New:
----
mariadb-connector-c-3.3.10-src.tar.gz
mariadb-connector-c-3.3.10-src.tar.gz.asc
BETA DEBUG BEGIN:
Old: * https://mariadb.com/kb/en/mariadb-connector-c-3-3-10-release-notes/
- Remove fix-build-gcc14.patch (fixed upstream)
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mariadb-connector-c.spec ++++++
--- /var/tmp/diff_new_pack.aPYlRb/_old 2024-07-03 20:29:27.323209664 +0200
+++ /var/tmp/diff_new_pack.aPYlRb/_new 2024-07-03 20:29:27.327209811 +0200
@@ -25,7 +25,7 @@
%endif
%bcond_with sqlite3
Name: mariadb-connector-c
-Version: 3.3.8
+Version: 3.3.10
Release: 0
Summary: MariaDB connector in C
License: LGPL-2.1-or-later
@@ -38,7 +38,6 @@
Source3: baselibs.conf
Patch1: mariadb-connector-c-2.3.1_unresolved_symbols.patch
Patch4: private_library.patch
-Patch5: fix-build-gcc14.patch
BuildRequires: cmake
BuildRequires: curl-devel
BuildRequires: pkgconfig
++++++ mariadb-connector-c-3.3.8-src.tar.gz ->
mariadb-connector-c-3.3.10-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/.travis.yml
new/mariadb-connector-c-3.3.10-src/.travis.yml
--- old/mariadb-connector-c-3.3.8-src/.travis.yml 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/.travis.yml 2024-05-10
10:26:44.000000000 +0200
@@ -1,10 +1,5 @@
-os: linux
-dist: focal
language: c
-services: docker
-addons:
- hosts:
- - mariadb.example.com
+version: ~> 1.0
cache:
apt: true
@@ -12,98 +7,22 @@
directories:
- $HOME/docker
-before_install:
- - git clone https://github.com/mariadb-corporation/connector-test-machine.git
- # Load cached docker images
- - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file}
sh -c "zcat {file} | docker load"; fi
+env:
+ global: local=0 DB=testc CLEAR_TEXT=0
-install:
- - |-
- if [ -z "$server_branch" ] ; then
- case $TRAVIS_OS_NAME in
- windows)
- connector-test-machine/launch.bat -t "$srv" -v "$v" -d testc
- ;;
- linux)
- source connector-test-machine/launch.sh -t "$srv" -v "$v" -d testc
-l "$local" -n "$native"
- ;;
- esac
- fi
-
-
-env: local=0
-
-stages:
- - Minimal
- - name: Enterprise
- if: type = push AND fork = false
- - Community
+import: mariadb-corporation/connector-test-machine:common-build.yml@master
jobs:
- fast_finish: true
- allow_failures:
- - env: srv=maxscale
- - env: srv=skysql
- - env: srv=skysql-ha
- - env: srv=xpand
- - env: srv=mysql v=5.7
- - env: srv=mysql v=8.0
include:
- - stage: Minimal
- env: srv=mariadb v=10.6 packet=8
- name: "CS 10.6"
- - env: srv=mariadb-es
- name: "ES latest"
- if: type = push AND fork = false
- - env: server_branch=10.11
- name: "10.11 Server unit testing"
-
- - stage: Enterprise
- env: srv=mariadb-es v=10.4
- dist: bionic
- name: "ES 10.4"
- - env: srv=mariadb-es v=10.5
- dist: bionic
- name: "ES 10.5"
- - env: srv=mariadb-es v=10.6
- name: "ES 10.6"
- - env: srv=mariadb-es-test v=23.08
- name: "ES 23.08"
- - env: srv=maxscale
- name: "Maxscale"
- - env: srv=xpand
- name: "Xpand"
-
- stage: Community
- env: srv=mariadb v=10.11
- os: windows
- language: shell
- name: "Windows"
- - env: server_branch=10.6
- name: "10.6 Server unit testing"
+ env: srv=mariadb v=10.11 local=1 TEST_OPTION=--ps-protocol
+ name: "CS 10.11 with ps-protocol"
+ - stage: Other
+ env: server_branch=10.6
+ name: "CS 10.6 Server unit testing"
+ - env: server_branch=10.11
+ name: "CS 10.11 Server unit testing"
- env: server_branch=11.3 TEST_OPTION=--ps-protocol
name: "11.3 Server unit testing with ps-protocol"
- - env: srv=mariadb v=10.4 local=1
- dist: bionic
- name: "CS 10.4"
- - env: srv=mariadb v=10.5 local=1
- dist: bionic
- name: "CS 10.5"
- - env: srv=mariadb v=10.9 local=1
- name: "CS 10.9"
- - env: srv=mariadb v=10.10 local=1
- name: "CS 10.10"
- - env: srv=mariadb v=10.11 local=1
- name: "CS 10.11"
- - env: srv=mariadb v=10.11 local=1 TEST_OPTION=--ps-protocol
- name: "CS 10.11 with ps-protocol"
- - env: srv=mariadb v=11.0 local=1
- name: "CS 11.0"
- - env: srv=mariadb v=11.1 local=1
- name: "CS 11.1"
- - env: srv=mysql v=5.7 native=1
- name: "MySQL 5.7"
- - env: srv=mysql v=8.0 native=1
- name: "MySQL 8.0"
script: ./travis.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/CMakeLists.txt
new/mariadb-connector-c-3.3.10-src/CMakeLists.txt
--- old/mariadb-connector-c-3.3.8-src/CMakeLists.txt 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/CMakeLists.txt 2024-05-10
10:26:44.000000000 +0200
@@ -36,7 +36,7 @@
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
SET(CPACK_PACKAGE_VERSION_MINOR 3)
-SET(CPACK_PACKAGE_VERSION_PATCH 8)
+SET(CPACK_PACKAGE_VERSION_PATCH 10)
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 +
@@ -395,7 +395,7 @@
MESSAGE1(SYSTEM_LIBS "SYSTEM_LIBS ${SYSTEM_LIBS}")
MARK_AS_ADVANCED(SYSTEM_LIBS)
-IF(NOT IS_SUBPROJECT)
+IF(NOT IS_SUBPROJECT AND (NOT DEFINED CMAKE_COMPILE_WARNING_AS_ERROR))
IF ((NOT WIN32) AND (CMAKE_C_COMPILER_ID MATCHES "Clang" OR
CMAKE_C_COMPILER_ID MATCHES "GNU"))
SET(WARNING_AS_ERROR "-Werror")
ELSEIF(CMAKE_C_COMPILER_ID MATCHES "MSVC")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/cmake/FindZStd.cmake
new/mariadb-connector-c-3.3.10-src/cmake/FindZStd.cmake
--- old/mariadb-connector-c-3.3.8-src/cmake/FindZStd.cmake 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/cmake/FindZStd.cmake 2024-05-10
10:26:44.000000000 +0200
@@ -10,7 +10,7 @@
HINTS ${ZSTD_ROOT_DIR}/include)
find_library(ZSTD_LIBRARIES
- NAMES zstd
+ NAMES zstd zstd_static
HINTS ${ZSTD_ROOT_DIR}/lib)
include(FindPackageHandleStandardArgs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/include/CMakeLists.txt
new/mariadb-connector-c-3.3.10-src/include/CMakeLists.txt
--- old/mariadb-connector-c-3.3.8-src/include/CMakeLists.txt 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/CMakeLists.txt 2024-05-10
10:26:44.000000000 +0200
@@ -17,7 +17,6 @@
ENDIF()
SET(MYSQL_ADDITIONAL_INCLUDES
${CC_SOURCE_DIR}/include/mysql/client_plugin.h
- ${CC_SOURCE_DIR}/include/mysql/plugin_auth_common.h
${CC_SOURCE_DIR}/include/mysql/plugin_auth.h
)
SET(MARIADB_ADDITIONAL_INCLUDES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/include/errmsg.h
new/mariadb-connector-c-3.3.10-src/include/errmsg.h
--- old/mariadb-connector-c-3.3.8-src/include/errmsg.h 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/errmsg.h 2024-05-10
10:26:44.000000000 +0200
@@ -114,10 +114,11 @@
#define CR_BINLOG_ERROR 5021
#define CR_BINLOG_INVALID_FILE 5022
#define CR_BINLOG_SEMI_SYNC_ERROR 5023
+#define CR_INVALID_CLIENT_FLAG 5024
/* Always last, if you add new error codes please update the
value for CR_MARIADB_LAST_ERROR */
-#define CR_MARIADB_LAST_ERROR CR_BINLOG_INVALID_FILE
+#define CR_MARIADB_LAST_ERROR CR_INVALID_CLIENT_FLAG
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/include/ma_hash.h
new/mariadb-connector-c-3.3.10-src/include/ma_hash.h
--- old/mariadb-connector-c-3.3.8-src/include/ma_hash.h 1970-01-01
01:00:00.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/ma_hash.h 2024-05-10
10:26:44.000000000 +0200
@@ -0,0 +1,22 @@
+#ifndef _ma_hash_h_
+#define _ma_hash_h_
+
+/*! Hash algorithms */
+#define MA_HASH_MD5 1
+#define MA_HASH_SHA1 2
+#define MA_HASH_SHA224 3
+#define MA_HASH_SHA256 4
+#define MA_HASH_SHA384 5
+#define MA_HASH_SHA512 6
+
+/*! Hash digest sizes */
+#define MA_MD5_HASH_SIZE 16
+#define MA_SHA1_HASH_SIZE 20
+#define MA_SHA224_HASH_SIZE 28
+#define MA_SHA256_HASH_SIZE 32
+#define MA_SHA384_HASH_SIZE 48
+#define MA_SHA512_HASH_SIZE 64
+
+#define MA_MAX_HASH_SIZE 64
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/include/mariadb_com.h
new/mariadb-connector-c-3.3.10-src/include/mariadb_com.h
--- old/mariadb-connector-c-3.3.8-src/include/mariadb_com.h 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/mariadb_com.h 2024-05-10
10:26:44.000000000 +0200
@@ -205,11 +205,17 @@
CLIENT_MULTI_STATEMENTS |\
CLIENT_MULTI_RESULTS |\
CLIENT_PROGRESS |\
- CLIENT_SSL_VERIFY_SERVER_CERT |\
+ CLIENT_SSL_VERIFY_SERVER_CERT |\
CLIENT_REMEMBER_OPTIONS |\
CLIENT_PLUGIN_AUTH |\
CLIENT_SESSION_TRACKING |\
CLIENT_CONNECT_ATTRS)
+#define CLIENT_ALLOWED_FLAGS (CLIENT_SUPPORTED_FLAGS |\
+ CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA |\
+ CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS |\
+ CLIENT_ZSTD_COMPRESSION |\
+ CLIENT_PS_MULTI_RESULTS |\
+ CLIENT_REMEMBER_OPTIONS)
#define CLIENT_CAPABILITIES (CLIENT_MYSQL | \
CLIENT_LONG_FLAG |\
CLIENT_TRANSACTIONS |\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/include/mysql/client_plugin.h
new/mariadb-connector-c-3.3.10-src/include/mysql/client_plugin.h
--- old/mariadb-connector-c-3.3.8-src/include/mysql/client_plugin.h
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/mysql/client_plugin.h
2024-05-10 10:26:44.000000000 +0200
@@ -122,7 +122,7 @@
} MARIADB_PVIO_PLUGIN;
/******** authentication plugin specific declarations *********/
-#include <mysql/plugin_auth_common.h>
+#include <mysql/plugin_auth.h>
struct st_mysql_client_plugin_AUTHENTICATION
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/include/mysql/plugin_auth_common.h
new/mariadb-connector-c-3.3.10-src/include/mysql/plugin_auth_common.h
--- old/mariadb-connector-c-3.3.8-src/include/mysql/plugin_auth_common.h
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/include/mysql/plugin_auth_common.h
1970-01-01 01:00:00.000000000 +0100
@@ -1,110 +0,0 @@
-/* Copyright (C) 2010 Sergei Golubchik and Monty Program Ab
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02111-1301, USA */
-
-
-#ifndef MYSQL_PLUGIN_AUTH_COMMON_INCLUDED
-/**
- @file
-
- This file defines constants and data structures that are the same for
- both client- and server-side authentication plugins.
-*/
-#define MYSQL_PLUGIN_AUTH_COMMON_INCLUDED
-
-/** the max allowed length for a user name */
-#define MYSQL_USERNAME_LENGTH 512
-
-/**
- return values of the plugin authenticate_user() method.
-*/
-
-/**
- Authentication failed. Additionally, all other CR_xxx values
- (libmariadb error code) can be used too.
-
- The client plugin may set the error code and the error message directly
- in the MYSQL structure and return CR_ERROR. If a CR_xxx specific error
- code was returned, an error message in the MYSQL structure will be
- overwritten. If CR_ERROR is returned without setting the error in MYSQL,
- CR_UNKNOWN_ERROR will be user.
-*/
-#define CR_ERROR 0
-/**
- Authentication (client part) was successful. It does not mean that the
- authentication as a whole was successful, usually it only means
- that the client was able to send the user name and the password to the
- server. If CR_OK is returned, the libmariadb reads the next packet expecting
- it to be one of OK, ERROR, or CHANGE_PLUGIN packets.
-*/
-#define CR_OK -1
-/**
- Authentication was successful.
- It means that the client has done its part successfully and also that
- a plugin has read the last packet (one of OK, ERROR, CHANGE_PLUGIN).
- In this case, libmariadb will not read a packet from the server,
- but it will use the data at mysql->net.read_pos.
-
- A plugin may return this value if the number of roundtrips in the
- authentication protocol is not known in advance, and the client plugin
- needs to read one packet more to determine if the authentication is finished
- or not.
-*/
-#define CR_OK_HANDSHAKE_COMPLETE -2
-
-typedef struct st_plugin_vio_info
-{
- enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET,
- MYSQL_VIO_PIPE, MYSQL_VIO_MEMORY } protocol;
-#ifndef _WIN32
- int socket; /**< it's set, if the protocol is SOCKET or TCP */
-#else
- SOCKET socket; /**< it's set, if the protocol is SOCKET or TCP */
- HANDLE handle; /**< it's set, if the protocol is PIPE or MEMORY */
-#endif
-} MYSQL_PLUGIN_VIO_INFO;
-
-/**
- Provides plugin access to communication channel
-*/
-typedef struct st_plugin_vio
-{
- /**
- Plugin provides a pointer reference and this function sets it to the
- contents of any incoming packet. Returns the packet length, or -1 if
- the plugin should terminate.
- */
- int (*read_packet)(struct st_plugin_vio *vio,
- unsigned char **buf);
-
- /**
- Plugin provides a buffer with data and the length and this
- function sends it as a packet. Returns 0 on success, 1 on failure.
- */
- int (*write_packet)(struct st_plugin_vio *vio,
- const unsigned char *packet,
- int packet_len);
-
- /**
- Fills in a st_plugin_vio_info structure, providing the information
- about the connection.
- */
- void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info);
-
-} MYSQL_PLUGIN_VIO;
-
-#endif
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/libmariadb/ma_default.c
new/mariadb-connector-c-3.3.10-src/libmariadb/ma_default.c
--- old/mariadb-connector-c-3.3.8-src/libmariadb/ma_default.c 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/libmariadb/ma_default.c 2024-05-10
10:26:44.000000000 +0200
@@ -135,6 +135,7 @@
end:
return configuration_dirs;
error:
+ release_configuration_dirs();
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/libmariadb/ma_errmsg.c
new/mariadb-connector-c-3.3.10-src/libmariadb/ma_errmsg.c
--- old/mariadb-connector-c-3.3.8-src/libmariadb/ma_errmsg.c 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/libmariadb/ma_errmsg.c 2024-05-10
10:26:44.000000000 +0200
@@ -53,7 +53,7 @@
/* 2023 */ "",
/* 2024 */ "",
/* 2025 */ "",
-/* 2026 */ "TLS/SSL error: %-.100s",
+/* 2026 */ "TLS/SSL error: %s",
/* 2027 */ "Received malformed packet",
/* 2028 */ "",
/* 2029 */ "",
@@ -118,6 +118,7 @@
/* 5021 */ "Binary log error (File: %.*s start_pos=%ld): %s.",
/* 5022 */ "File '%s' is not a binary log file",
/* 5023 */ "Semi sync request error: %s",
+ /* 5024 */ "Invalid client flags (%lu) specified. Supported flags: %lu",
""
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/libmariadb/mariadb_async.c
new/mariadb-connector-c-3.3.10-src/libmariadb/mariadb_async.c
--- old/mariadb-connector-c-3.3.8-src/libmariadb/mariadb_async.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/libmariadb/mariadb_async.c
2024-05-10 10:26:44.000000000 +0200
@@ -140,7 +140,7 @@
{
int ssl_err;
b->events_to_wait_for= 0;
- if (res >= 0)
+ if (res > 0)
return 1;
ssl_err= SSL_get_error(ssl, res);
if (ssl_err == SSL_ERROR_WANT_READ)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/libmariadb/mariadb_lib.c
new/mariadb-connector-c-3.3.10-src/libmariadb/mariadb_lib.c
--- old/mariadb-connector-c-3.3.8-src/libmariadb/mariadb_lib.c 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/libmariadb/mariadb_lib.c 2024-05-10
10:26:44.000000000 +0200
@@ -241,18 +241,29 @@
}
goto restart;
}
- net->last_errno= last_errno;
- if (pos[0]== '#')
+ if (IS_MYSQL_ERROR(last_errno) || IS_MARIADB_ERROR(last_errno))
{
- ma_strmake(net->sqlstate, pos+1, SQLSTATE_LENGTH);
- pos+= SQLSTATE_LENGTH + 1;
+ /* The server appears to have sent an error code within the
+ * range(s) of error codes that should only be generated
+ * client-side.
+ */
+ my_set_error(mysql, CR_MALFORMED_PACKET, SQLSTATE_UNKNOWN, 0);
}
else
{
- strncpy(net->sqlstate, SQLSTATE_UNKNOWN, SQLSTATE_LENGTH);
+ net->last_errno= last_errno;
+ if (pos[0]== '#')
+ {
+ ma_strmake(net->sqlstate, pos+1, SQLSTATE_LENGTH);
+ pos+= SQLSTATE_LENGTH + 1;
+ }
+ else
+ {
+ strncpy(net->sqlstate, SQLSTATE_UNKNOWN, SQLSTATE_LENGTH);
+ }
+ ma_strmake(net->last_error,(char*) pos,
+ min(len,sizeof(net->last_error)-1));
}
- ma_strmake(net->last_error,(char*) pos,
- min(len,sizeof(net->last_error)-1));
}
else
{
@@ -699,6 +710,7 @@
{{MARIADB_OPT_TLS_PASSPHRASE}, MARIADB_OPTION_STR, "tls-passphrase"},
{{MYSQL_OPT_SSL_ENFORCE}, MARIADB_OPTION_BOOL, "tls-enforce"},
{{MYSQL_OPT_SSL_VERIFY_SERVER_CERT}, MARIADB_OPTION_BOOL,"tls-verify-peer"},
+ {{MARIADB_OPT_RESTRICTED_AUTH}, MARIADB_OPTION_STR, "restricted-auth"},
{{0}, 0, NULL}
};
@@ -1422,6 +1434,14 @@
char *connection_handler= (mysql->options.extension) ?
mysql->options.extension->connection_handler : 0;
+ if ((client_flag & CLIENT_ALLOWED_FLAGS) != client_flag)
+ {
+ my_set_error(mysql, CR_INVALID_CLIENT_FLAG, SQLSTATE_UNKNOWN,
+ ER(CR_INVALID_CLIENT_FLAG),
+ client_flag, CLIENT_ALLOWED_FLAGS);
+ return NULL;
+ }
+
if (!mysql->methods)
mysql->methods= &MARIADB_DEFAULT_METHODS;
@@ -1787,11 +1807,24 @@
*/
if ((pkt_length=ma_net_safe_read(mysql)) == packet_error)
{
- if (mysql->net.last_errno == CR_SERVER_LOST)
+
+ unsigned int code= mysql->net.last_errno;
+ if (code == CR_SERVER_LOST)
my_set_error(mysql, CR_SERVER_LOST, SQLSTATE_UNKNOWN,
ER(CR_SERVER_LOST_EXTENDED),
"handshake: reading initial communication packet",
errno);
+ else if (IS_MYSQL_ERROR(code) || IS_MARIADB_ERROR(code))
+ ; /* not forged - generated on the client side */
+ else if (mysql->options.use_ssl)
+ {
+ char last_error[sizeof(mysql->net.last_error)];
+ strcpy(last_error, mysql->net.last_error);
+ my_set_error(mysql, CR_CONNECTION_ERROR, SQLSTATE_UNKNOWN,
+ "Received error packet before completion of TLS handshake. "
+ "The authenticity of the following error cannot be
verified: %d - %s",
+ code, last_error);
+ }
goto error;
}
@@ -1803,17 +1836,6 @@
mysql->protocol_version= end[0];
end++;
- /* Check if server sends an error */
- if (mysql->protocol_version == 0XFF)
- {
- net_get_error(end, pkt_length - 1, net->last_error,
sizeof(net->last_error),
- &net->last_errno, net->sqlstate);
- /* fix for bug #26426 */
- if (net->last_errno == 1040)
- memcpy(net->sqlstate, "08004", SQLSTATE_LENGTH);
- goto error;
- }
-
if (mysql->protocol_version < PROTOCOL_VERSION)
{
net->last_errno= CR_VERSION_ERROR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/libmariadb/secure/openssl.c
new/mariadb-connector-c-3.3.10-src/libmariadb/secure/openssl.c
--- old/mariadb-connector-c-3.3.8-src/libmariadb/secure/openssl.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/libmariadb/secure/openssl.c
2024-05-10 10:26:44.000000000 +0200
@@ -533,7 +533,7 @@
{
int ssl_err;
b->events_to_wait_for= 0;
- if (res >= 0)
+ if (res > 0)
return 1;
ssl_err= SSL_get_error(ssl, res);
if (ssl_err == SSL_ERROR_WANT_READ)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mariadb-connector-c-3.3.8-src/plugins/io/remote_io.c
new/mariadb-connector-c-3.3.10-src/plugins/io/remote_io.c
--- old/mariadb-connector-c-3.3.8-src/plugins/io/remote_io.c 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/plugins/io/remote_io.c 2024-05-10
10:26:44.000000000 +0200
@@ -279,11 +279,11 @@
MA_REMOTE_FILE *rf;
(void)operation;
- if (!(file = (MA_FILE *)calloc(sizeof(MA_FILE), 1)))
+ if (!(file = (MA_FILE *)calloc(1, sizeof(MA_FILE))))
return NULL;
file->type= MA_FILE_REMOTE;
- if (!(file->ptr= rf= (MA_REMOTE_FILE *)calloc(sizeof(MA_REMOTE_FILE), 1)))
+ if (!(file->ptr= rf= (MA_REMOTE_FILE *)calloc(1, sizeof(MA_REMOTE_FILE))))
{
free(file);
return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/plugins/pvio/pvio_npipe.c
new/mariadb-connector-c-3.3.10-src/plugins/pvio/pvio_npipe.c
--- old/mariadb-connector-c-3.3.8-src/plugins/pvio/pvio_npipe.c 2023-11-01
11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/plugins/pvio/pvio_npipe.c
2024-05-10 10:26:44.000000000 +0200
@@ -150,19 +150,38 @@
return GetOverlappedResult(file, ov, size, FALSE);
}
+/*
+ Disable posting IO completion event to the port.
+ Handle can be bound to IOCP outside of the connector for other purposes
+ (e.g polling functionality)
+*/
+
+static inline void disable_iocp_notification(HANDLE *h)
+{
+ *h= (HANDLE) ((ULONG_PTR) *h | 1);
+}
+
+static inline void enable_iocp_notification(HANDLE *h)
+{
+ *h= (HANDLE) ((ULONG_PTR) *h & ~1);
+}
+
ssize_t pvio_npipe_read(MARIADB_PVIO *pvio, uchar *buffer, size_t length)
{
BOOL ret;
ssize_t r= -1;
struct st_pvio_npipe *cpipe= NULL;
DWORD size;
+ HANDLE *h;
if (!pvio || !pvio->data)
return -1;
cpipe= (struct st_pvio_npipe *)pvio->data;
-
+ h= &cpipe->overlapped.hEvent;
+ disable_iocp_notification(h);
ret= ReadFile(cpipe->pipe, buffer, (DWORD)length, NULL, &cpipe->overlapped);
+ enable_iocp_notification(h);
ret= complete_io(cpipe->pipe, &cpipe->overlapped, ret,
pvio->timeout[PVIO_READ_TIMEOUT], &size);
r= ret? (ssize_t) size:-1;
@@ -175,13 +194,15 @@
struct st_pvio_npipe *cpipe= NULL;
BOOL ret;
DWORD size;
-
+ HANDLE *h;
if (!pvio || !pvio->data)
return -1;
cpipe= (struct st_pvio_npipe *)pvio->data;
-
+ h= &cpipe->overlapped.hEvent;
+ disable_iocp_notification(h);
ret= WriteFile(cpipe->pipe, buffer, (DWORD)length, NULL ,
&cpipe->overlapped);
+ enable_iocp_notification(h);
ret= complete_io(cpipe->pipe, &cpipe->overlapped, ret,
pvio->timeout[PVIO_WRITE_TIMEOUT], &size);
r= ret ? (ssize_t)size : -1;
return r;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/plugins/pvio/pvio_socket.c
new/mariadb-connector-c-3.3.10-src/plugins/pvio/pvio_socket.c
--- old/mariadb-connector-c-3.3.8-src/plugins/pvio/pvio_socket.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/plugins/pvio/pvio_socket.c
2024-05-10 10:26:44.000000000 +0200
@@ -39,7 +39,7 @@
#include <sys/un.h>
#endif
#ifdef HAVE_POLL
-#include <sys/poll.h>
+#include <poll.h>
#endif
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/plugins/trace/trace_example.c
new/mariadb-connector-c-3.3.10-src/plugins/trace/trace_example.c
--- old/mariadb-connector-c-3.3.8-src/plugins/trace/trace_example.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/plugins/trace/trace_example.c
2024-05-10 10:26:44.000000000 +0200
@@ -132,7 +132,7 @@
info= (TRACE_INFO *)info->next;
}
- if (!(info= (TRACE_INFO *)calloc(sizeof(TRACE_INFO), 1)))
+ if (!(info= (TRACE_INFO *)calloc(1, sizeof(TRACE_INFO))))
return NULL;
info->thread_id= thread_id;
info->next= trace_info;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/bulk1.c
new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/bulk1.c
--- old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/bulk1.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/bulk1.c
2024-05-10 10:26:44.000000000 +0200
@@ -74,8 +74,8 @@
/* allocate memory */
buffer= calloc(TEST_ARRAY_SIZE, sizeof(char *));
- lengths= (unsigned long *)calloc(sizeof(long), TEST_ARRAY_SIZE);
- vals= (unsigned int *)calloc(sizeof(int), TEST_ARRAY_SIZE);
+ lengths= calloc(TEST_ARRAY_SIZE, sizeof *lengths);
+ vals= calloc(TEST_ARRAY_SIZE, sizeof *vals);
for (i=0; i < TEST_ARRAY_SIZE; i++)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/charset.c
new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/charset.c
--- old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/charset.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/charset.c
2024-05-10 10:26:44.000000000 +0200
@@ -47,6 +47,9 @@
MYSQL_RES *res;
MYSQL_ROW row;
+ /* MXS-4898: MaxScale sends utf8mb4 in handshake OK packet */
+ SKIP_MAXSCALE;
+
len= mysql_real_escape_string(mysql, out, TEST_BUG8378_IN, 4);
FAIL_IF(memcmp(out, TEST_BUG8378_OUT, len), "wrong result");
@@ -791,6 +794,10 @@
MYSQL_ROW row;
int found= 0;
int mdev27266= 0;
+ int unsupported[]= {
+ 579, /* utf8mb3_general1400_as_ci added in 11.5 */
+ 611, /* utf8mb4_general1400_as_ci added in 11.5 */
+ 0};
SKIP_MYSQL(mysql);
@@ -836,8 +843,11 @@
id= atoi(row[0]);
if (!mariadb_get_charset_by_nr(id))
{
- diag("%04d %s %s", id, row[1], row[2]);
+ int j=0;
found++;
+ for (j=0; unsupported[j]; j++)
+ if (unsupported[j] == id)
+ found--;
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/connection.c
new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/connection.c
--- old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/connection.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/connection.c
2024-05-10 10:26:44.000000000 +0200
@@ -1222,6 +1222,9 @@
int rc;
FILE *fp;
+ /* MXS-4898: MaxScale sends utf8mb4 in handshake OK packet */
+ SKIP_MAXSCALE;
+
if (!(fp= fopen("./mdev13100.cnf", "w")))
return FAIL;
@@ -1240,6 +1243,7 @@
diag("Error: %s", mysql_error(mysql));
return FAIL;
}
+ diag("Default charset: %s", mysql_character_set_name(mysql));
FAIL_IF(strcmp("latin2", mysql_character_set_name(mysql)), "Expected charset
latin2");
mysql_close(mysql);
@@ -2190,6 +2194,7 @@
{
MARIADB_CONST_STRING *str= va_arg(ap, MARIADB_CONST_STRING *);
strncpy(data->database, str->str, str->length);
+ data->database[str->length]= 0;
}
break;
case SESSION_TRACK_SYSTEM_VARIABLES:
@@ -2200,6 +2205,7 @@
if (!strncmp(key->str, "character_set_client", key->length))
{
strncpy(data->charset, val->str, val->length);
+ data->charset[val->length]= 0;
}
}
break;
@@ -2301,7 +2307,33 @@
return OK;
}
+static int test_conc505(MYSQL *my __attribute__((unused)))
+{
+ MYSQL *mysql= mysql_init(NULL);
+
+#define CLIENT_DEPRECATE_EOF (1ULL << 24)
+
+ if (my_test_connect(mysql, hostname, username, password, schema, port,
socketname, CLIENT_DEPRECATE_EOF))
+ {
+ diag("Error expected: Invalid client flag");
+ mysql_close(mysql);
+ return FAIL;
+ }
+ diag("Error (expected): %s", mysql_error(mysql));
+ FAIL_IF(mysql_errno(mysql) != CR_INVALID_CLIENT_FLAG, "Wrong error number");
+ if (!my_test_connect(mysql, hostname, username, password, schema, port,
socketname, CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS))
+ {
+ diag("Error: %s", mysql_error(mysql));
+ mysql_close(mysql);
+ return FAIL;
+ }
+
+ mysql_close(mysql);
+ return OK;
+}
+
struct my_tests_st my_tests[] = {
+ {"test_conc505", test_conc505, TEST_CONNECTION_NONE, 0, NULL, NULL},
{"test_conc632", test_conc632, TEST_CONNECTION_NONE, 0, NULL, NULL},
{"test_status_callback", test_status_callback, TEST_CONNECTION_NONE, 0,
NULL, NULL},
{"test_conc365", test_conc365, TEST_CONNECTION_NONE, 0, NULL, NULL},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/ps_bugs.c
new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/ps_bugs.c
--- old/mariadb-connector-c-3.3.8-src/unittest/libmariadb/ps_bugs.c
2023-11-01 11:28:04.000000000 +0100
+++ new/mariadb-connector-c-3.3.10-src/unittest/libmariadb/ps_bugs.c
2024-05-10 10:26:44.000000000 +0200
@@ -3257,7 +3257,7 @@
static int test_mem_overun(MYSQL *mysql)
{
- char buffer[10000], field[12];
+ char buffer[10000], field[20];
MYSQL_STMT *stmt;
MYSQL_RES *field_res, *res;
int rc, i, length;
@@ -5159,7 +5159,7 @@
MYSQL_STMT *stmt= mysql_stmt_init(mysql);
MYSQL_BIND* bind;
- bind = calloc(sizeof(MYSQL_BIND), 65535);
+ bind = calloc(65535, sizeof *bind);
rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1");
check_mysql_rc(rc, mysql);