The driver v18 and v17 crashes on Ubuntu 22.04. I see the application crashing with a segmentation fault on the call to SQLDriveConnectA(). The stack ends at:
libcrypto.so.3!OPENSSL_strcasecmp
Loaded '/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.1.so.2.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libdl.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/librt.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libodbcinst.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libkrb5.so.3'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libgssapi_krb5.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libpthread.so.0'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libk5crypto.so.3'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libcom_err.so.2'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libkrb5support.so.0'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libkeyutils.so.1'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libresolv.so.2'. Symbols loaded.
Loaded '/usr/lib/x86_64-linux-gnu/gconv/UTF-16.so'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libssl.so.3'. Symbols loaded.
Loaded '/lib/x86_64-linux-gnu/libcrypto.so.3'. Symbol
My application links OpenSSL 1.1.1n
ODBC Packages:
$ apt list --installed | grep odbc
libodbc2/jammy,now 2.3.9-5 amd64 [installed,automatic]
libodbccr2/jammy,now 2.3.9-5 amd64 [installed,automatic]
libodbcinst2/jammy,now 2.3.9-5 amd64 [installed,automatic]
msodbcsql17/jammy,now 17.10.2.1-1 amd64 [installed,automatic]
msodbcsql18/jammy,now 18.1.2.1-1 amd64 [installed]
odbcinst/jammy,now 2.3.9-5 amd64 [installed,automatic]
unixodbc-common/jammy,now 2.3.9-5 all [installed,automatic]
unixodbc-dev/jammy,now 2.3.9-5 amd64 [installed]
unixodbc/jammy,now 2.3.9-5 amd64 [installed,automatic]
gcc packages:
$ apt list --installed | grep gcc
gcc-11-base/jammy-updates,jammy-security,now 11.3.0-1ubuntu1~22.04 amd64 [installed,automatic]
gcc-11/jammy-updates,jammy-security,now 11.3.0-1ubuntu1~22.04 amd64 [installed,automatic]
gcc-12-base/jammy-updates,jammy-security,now 12.1.0-2ubuntu1~22.04 amd64 [installed]
gcc/jammy,now 4:11.2.0-1ubuntu1 amd64 [installed,automatic]
lib32gcc-s1/jammy-updates,jammy-security,now 12.1.0-2ubuntu1~22.04 amd64 [installed,automatic]
libgcc-11-dev/jammy-updates,jammy-security,now 11.3.0-1ubuntu1~22.04 amd64 [installed,automatic]
libgcc-s1/jammy-updates,jammy-security,now 12.1.0-2ubuntu1~22.04 amd64 [installed]
Note: On the same environment the main.c sample application above by YOSHIZAKI_Shota works exactly as mentioned. Same memory leaks but no crash.
Only difference seems to be that my application links OpenSSL.