Your message dated Sat, 12 Sep 2026 08:05:42 +0000
with message-id <[email protected]>
and subject line Released in 13.7
has caused the Debian Bug report #1141620,
regarding trixie-pu: package unixodbc/2.3.12-2+deb13u1
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1141620: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1141620
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:unixodbc
User: [email protected]
Usertags: pu
[ Reason ]
odbcinst2 is leaking memory. After a dlclose(), libodbcinst2 still has a
dynamically allocated ini cache and memory allocation for the odbcinst logger.
[ Impact ]
The leak occurs on all systems with ini-caching enabled at build time, which is
all Debian systems.
Broadly, the bug is impacting MariaDB ODBC connector. MariaDB developers
reported the bug to the upstream unixODBC.
[ Tests ]
See, for example, https://jira.mariadb.org/browse/MDEV-38838.
[ Risks ]
Memory leaks remain and impact systems using MariaDB and other databases with
unixODBC.
[ Checklist ]
[x] *all* changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in (old)stable
[x] the issue is verified as fixed in unstable
[ Changes ]
The upstream patch declares the relevant destructor at compile time, adds
inst_logClose() to close and clear ODBCINSTLog, and calls inst_logClose() and
__clear_ini_cache() on shared library closure.
This version also introduces a new symbol, inst_logClose, which is fine.
[ Other info ]
Upstream MariaDB is requesting an upload to Debian stable, which I support (see
#1141600).
diff -Nru unixodbc-2.3.12/debian/changelog unixodbc-2.3.12/debian/changelog
--- unixodbc-2.3.12/debian/changelog 2024-12-17 22:34:56.000000000 +1100
+++ unixodbc-2.3.12/debian/changelog 2026-07-07 22:00:05.000000000 +1000
@@ -1,3 +1,11 @@
+unixodbc (2.3.12-2+deb13u1) trixie; urgency=medium
+
+ * debian/libodbcinst2.symbols: Add inst_logClose@Base.
+ * debian/patches: Clear cached allocations on dlclose() in libodbcinst2
+ (Closes: #1136221).
+
+ -- Hugh McMaster <[email protected]> Tue, 07 Jul 2026 22:00:05 +1000
+
unixodbc (2.3.12-2) unstable; urgency=medium
* debian/control:
diff -Nru unixodbc-2.3.12/debian/libodbcinst2.symbols
unixodbc-2.3.12/debian/libodbcinst2.symbols
--- unixodbc-2.3.12/debian/libodbcinst2.symbols 2024-12-16 18:32:11.000000000
+1100
+++ unixodbc-2.3.12/debian/libodbcinst2.symbols 2026-07-07 21:59:05.000000000
+1000
@@ -81,6 +81,7 @@
iniPropertyNext@Base 2.3.1
iniToUpper@Base 2.3.1
iniValue@Base 2.3.1
+ inst_logClose@Base 2.3.12
inst_logPushMsg@Base 2.3.1
odbcinst_system_file_name@Base 2.3.1
odbcinst_system_file_path@Base 2.3.1
diff -Nru unixodbc-2.3.12/debian/patches/1136221.patch
unixodbc-2.3.12/debian/patches/1136221.patch
--- unixodbc-2.3.12/debian/patches/1136221.patch 1970-01-01
10:00:00.000000000 +1000
+++ unixodbc-2.3.12/debian/patches/1136221.patch 2026-07-07
21:59:05.000000000 +1000
@@ -0,0 +1,76 @@
+Description: Clear cached allocations on dlclose() in libodbcinst2
+ * Declare destructors at configure time.
+ * New libodbcinst2 symbol inst_logClose.
+ * Add inst_logClose() to close and clear ODBCINSTLog.
+ * Call inst_logClose() and __clear_ini_cache() on shared library closure.
+
+ Patch derived from upstream commits:
+ * e545d3dd29c7290a70992c1b2b1de4f6219e1a6f
+ * a2cecd22d0509bf550053e8b7d654936af4c7540
+
+ See also: https://github.com/lurcher/unixODBC/pull/234
+Author: Daniel Black, Nick Gorham
+Bug: https://github.com/lurcher/unixODBC/issues/130
+Bug: https://github.com/lurcher/unixODBC/issues/207
+Bug-Debian: https://bugs.debian.org/1136221
+Last-Updated: 2026-05-14
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -590,6 +590,20 @@
+ done
+ ])
+
++dnl see if we can declare a destructor
++AC_MSG_CHECKING([if __attribute__((destructor)) works])
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([__attribute__((destructor))], [int x = 0;])],
++ [
++ AC_MSG_RESULT( yes )
++
AC_DEFINE([PORTABLE_DESTRUCTOR],[__attribute__((destructor))],[Declare function
as a destructor])
++ ],
++ [
++ AC_MSG_RESULT( no )
++ AC_DEFINE([PORTABLE_DESTRUCTOR],[],[Declare function as a destructor])
++ ]
++)
++
+ dnl AC_SUBST(all_includes)
+ dnl AC_SUBST(all_libraries)
+
+--- a/odbcinst/SQLGetPrivateProfileString.c
++++ b/odbcinst/SQLGetPrivateProfileString.c
+@@ -327,6 +327,7 @@
+ mutex_exit( &mutex_ini );
+ }
+
++PORTABLE_DESTRUCTOR
+ void __clear_ini_cache( void )
+ {
+ mutex_entry( &mutex_ini );
+--- a/odbcinst/_logging.c
++++ b/odbcinst/_logging.c
+@@ -201,3 +201,15 @@
+ return ret;
+ }
+
++PORTABLE_DESTRUCTOR
++void inst_logClose( void )
++{
++
++ local_mutex_entry();
++
++ if ( hODBCINSTLog ) {
++ logClose( hODBCINSTLog );
++ }
++
++ local_mutex_exit();
++}
+--- a/odbcinst/odbcinst.exp
++++ b/odbcinst/odbcinst.exp
+@@ -83,4 +83,5 @@
+ iniToUpper
+ iniValue
+ inst_logPushMsg
++inst_logClose
+ __clear_ini_cache
diff -Nru unixodbc-2.3.12/debian/patches/series
unixodbc-2.3.12/debian/patches/series
--- unixodbc-2.3.12/debian/patches/series 2024-12-16 22:02:24.000000000
+1100
+++ unixodbc-2.3.12/debian/patches/series 2026-07-07 21:59:05.000000000
+1000
@@ -1 +1,2 @@
0001-configure-ac-cursor-lib.patch
+1136221.patch
--- End Message ---
--- Begin Message ---
Version: 13.7
This update was released as part of 13.7.
--- End Message ---