1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-09-11 08:30:59 +03:00
Commit Graph

2309 Commits

Author SHA1 Message Date
Oleksandr Byelkin
b5a2c9f3c2 Merge branch '3.3' into 3.4 v3.4.6 2025-04-20 10:49:16 +02:00
Oleksandr Byelkin
55abb32038 Merge branch '3.1' into 3.3-merge v3.3.16 2025-04-20 10:16:30 +02:00
Vladislav Vaintroub
8804593283 CONC-767 Improve SSL verification performance on Windows
Fixes slow SSL handshakes in network-restricted environments. On Windows,
the verification process uses the CertGetCertificateChain API, which
may attempt to refresh the CA list or fetch CRLs/OCSP data from the
network. This can trigger slow network lookups when no CA or CRL is
explicitly specified.

This patch disables these unnecessary network calls by using flags
like CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL to prevent external requests
during certificate chain validation. Additionally, it applies
Microsoft-recommended optimizations to speed up certificate handling
and avoid delays in SSL handshakes.

Also, unless explicitly requested(via ca_cert or crl_file or similar),
do not bother to verify name, CA or CRL for local connections. It saves
time. The failures in verification were previously discarded anyway.
2025-04-17 19:55:17 +02:00
Vladislav Vaintroub
fa56a25fae Remove workaround after MDEV-13492 was fixed.
SSL connection on Windows used retry logic initially, to "fix" MDEV-13492
This actual bug is now understood, and was fixed a while ago.
Remove the workaround now.
2025-04-17 19:53:21 +02:00
Georg Richter
867f0d1825 Merge pull request #274 from grooverdan/makecontext
CONC-766: Disable clang -Wcast-function-type-strict for makecontext
v3.1.29
2025-04-17 09:30:13 +02:00
Georg Richter
9247ab71dd Merge pull request #273 from knielsen/knielsen_conc764
CONC-764: Build error in ma_context.c on android
2025-04-17 02:14:19 +02:00
Daniel Black
52c1eb4d75 CONC-766 Disable clang -Wcast-function-type-strict for makecontext
makecontext has a defined prototype in ucontext.h that
differs from its expected usage. Disable the clang
warning for this function call.
2025-04-10 14:59:12 +10:00
Daniel Bartholomew
b0e31d6f29 bump the VERSION 2025-04-09 18:16:46 -04:00
Daniel Bartholomew
7274f8f656 bump the VERSION 2025-04-09 18:15:34 -04:00
Daniel Bartholomew
ae74874451 bump the VERSION 2025-04-09 18:14:57 -04:00
Kristian Nielsen
5b7df2276c CONC-764: Build error in ma_context.c on android
Some research show that X18 is mentioned as a platform-reserved
register on most non-linux platforms, including MacOS, Windows, and
FreeBSD. So only put it in the clobber list in Linux.

Note that the ma_context.c code does not itself use the X18 register
in any way. On platforms where X18 is reserved, the co-routine code
will preserve it. On platforms where co-routine code can modify X18,
it does not need to be preserved. Putting X18 in the clobber list is
only to avoid GCC itself generating code that requires that X18 is
preserved.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-04-03 07:54:22 +02:00
Kristian Nielsen
8e371bbe8e CONC-764: Build error in ma_context.c on android
X18 is a platform-reserved register on Android, not a callee-save
register. So it will not be touched by the spawned/resumed co-routine
and must not be included in the GCC asm clobber list on this platform.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-04-01 19:25:48 +02:00
Georg Richter
ba712ddf96 CONC-763: ma_charset.c misses MySQL collation ID 309 - utf8mb4_0900_bin 2025-03-31 13:17:50 +02:00
Georg Richter
28a1e4b599 Fix for CONC-762: Always set is_null and length in bind structure to avoid
msan errors
2025-03-31 11:02:35 +02:00
Marko Mäkelä
5d34e4820f Merge 3.3 into 3.4 2025-03-28 11:40:08 +02:00
Georg Richter
b38e872003 Text fixes:
Fixed windows test (missing parameter)
Check if we need to connect via SSL port (Travis)
2025-03-05 13:39:22 +01:00
Oleksandr Byelkin
a7ad25b01b Fix memory leack in the test v3.3.15 2025-02-27 13:50:01 +01:00
Georg Richter
605f30f754 Merge branch '3.3' into 3.4 2025-02-27 11:09:55 +01:00
Georg Richter
0ff64ca045 Merge branch '3.1' into 3.3 2025-02-27 09:35:33 +01:00
Georg Richter
f7633e9d68 Test fix: pipe name
Instead of relying on default (MySQL), we check @@socket and
pass the correct pipe name.
v3.1.28
2025-02-27 09:33:35 +01:00
Georg Richter
13c693f28b Merge branch '3.3' into 3.4 2025-02-27 07:56:47 +01:00
Georg Richter
4c9bc2b0f6 Merge branch '3.1' into 3.3 2025-02-27 07:52:35 +01:00
Georg Richter
aa240cd181 CONC-760: valid named pipe connection is closed
Fixed different behavior of pvio_is_alive (which was first used
with fix of CONC-589). Both for sockets and named pipe the function
now returns true if the connection is alive, otherwise false.
2025-02-27 07:48:58 +01:00
Georg Richter
eda920ec0f Merge branch '3.3' into 3.4 2025-02-18 16:35:55 +01:00
Georg Richter
bbf07912ec Fix after previous revert 2025-02-18 16:32:29 +01:00
Georg Richter
c21a246b2d Merge branch '3.1' into 3.3 2025-02-18 16:31:09 +01:00
Georg Richter
d4eec05d00 Revert "CONC-710: Remove UDF declarations"
Since UDF declarations are used  e.g. by lib_mysqludf_sys, I'm reverting
this commit. (See also CONC-757).

This reverts commit 1a2ed3f67a.
2025-02-18 16:19:50 +01:00
Georg Richter
fe8f48c6c3 Build fix: fix warning in ps_bugs.c 2025-02-12 08:34:10 +01:00
Georg Richter
992c7f26dd Travis fix: Skip maxscale for test_mdev35935 2025-02-12 07:12:14 +01:00
Daniel Bartholomew
fe3a570810 bump the VERSION 2025-02-11 15:04:57 -05:00
Daniel Bartholomew
4bbfa5040e bump the VERSION 2025-02-11 15:03:48 -05:00
Daniel Bartholomew
a8f9a57aa5 bump the VERSION 2025-02-11 15:01:15 -05:00
Georg Richter
1e4e47347d test fix: use my_ulonglong instead of ulong
Use 64-bit long instead of 32-bit value to avoid
overflow
2025-02-11 19:38:55 +01:00
Georg Richter
3780dc432c Merge branch '3.3' into 3.4 2025-02-11 11:45:53 +01:00
Georg Richter
4877093937 Workaround for MDEV-35935
If the server returns an error packet without error number
(and message) we set errno=CR_ERR_MISSING_ERROR_INFO (5026)
2025-02-11 11:28:56 +01:00
Georg Richter
28ae227e80 CONC-755: Fix MSAN failure
Fixed uninitialized variable warning by initializing MYSQL_BIND
structure.
2025-02-11 10:50:40 +01:00
Georg Richter
ae507c3511 Merge pull request #270 from knielsen/knielsen_conc_fixes
Connector-C fixes for non-blocking API
2025-02-10 17:01:44 +01:00
Kristian Nielsen
2381127b11 CONC-473: mysql_real_connect_start() stack overrun with mdns hostname
Increase the default stack size for co-routines to 256 kByte. It was 60
kByte, which was too small for glibc getaddrinfo() when using mdns.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-02-06 00:24:28 +01:00
Kristian Nielsen
77754f4d87 CONC-725: Fix compiler warning about uninitialized union member
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-02-05 16:57:31 +01:00
Kristian Nielsen
fc49fa706d CONC-618: Please annotate swapcontext for ASAN
When compiling for AddressSanitizer, prefer the system ucontext or
boost::context co-routine libraries over our custom assembler routines. The
custom routines are not easily annotated with the required AddressSanitizer
__sanitizer_{start,finish}_switch_fiber() functions, while the system
routines should already be so annotated.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-02-05 16:08:25 +01:00
Kristian Nielsen
879fcab625 Remove obsolete reference to my_context.c which was renamed to ma_context.c
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-02-05 13:26:43 +01:00
Kristian Nielsen
003ea7e9de CONC-753: Compile error on .cfi_escape in builds with no unwind/cfi
Also CONC-754.

Depending on compiler options (eg. -fno-dwarf2-cfi-asm), the compiler may
not output .cfi_startproc / .cfi_endproc in generated assember, and this
causes a build error on the .cfi_escape directive put in my_context_spawn()
on systems with DWARF support.

Fix by using the proper preprocessor macro __GCC_HAVE_DWARF2_CFI_ASM to test
for .cfi_escape support, rather than crafted check for various compiler
brands and versions. Though this macro is only available in clang since
version 13.0.0, so unconditionally include the .cfi_escape in earlier clang
versions.

Thanks to Rainer Orth for the suggested fix.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-02-05 11:59:22 +01:00
Sergei Golubchik
93e420621a CONC-746 parsec plugin not unloaded during mtr test run
* check for client's parsec.so before installing server's auth_parsec.so
* find the plugin using the default connection (that has MYSQL_PLUGIN_DIR set)
* copy is_mariadb check from ed25519 tests, just in case
v3.4.4
2025-01-25 19:57:46 +01:00
Sergei Golubchik
a99205eb36 Merge branch '3.3' into 3.4 2025-01-25 18:06:27 +01:00
Sergei Golubchik
2d56f340c4 Merge branch '3.1' into 3.3 v3.3.14 2025-01-24 14:52:35 +01:00
Sergei Golubchik
7d930974c0 CONC-751 unit.conc_connection fails with CYPHER missmatch on some builds
disable the test for old gnutls
v3.1.27
2025-01-24 14:42:37 +01:00
Sergei Golubchik
232b563dc5 CONPY-739 don't use pow() to truncate an integer
it's
* generic power function, arbitrary floating-point arguments
* expensive
* returns double

while here we just need one of 1, 10, ..., 1000000.
2025-01-24 14:42:37 +01:00
Sergei Golubchik
836db56372 memory leaks after CONC-589, e09e24e8
we cannot just set `mysql->net.pvio= NULL`
we need to free(net->pvio) first.
And not protect `free(net->buff)` with `if (mysql->net.pvio)`.
2025-01-24 14:42:37 +01:00
Georg Richter
1135b92dd0 Merge branch '3.3' into 3.4 2025-01-24 06:08:45 +01:00
Georg Richter
4431d5bf0b Merge branch '3.1' into 3.3 2025-01-24 06:02:27 +01:00