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

Reply via email to