gnucash stable: [gnc-backend-dbi.cpp] if returning early, don't allocate char*

Christopher Lam clam at code.gnucash.org
Sun Jul 2 10:18:35 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/b011c81b (commit)
	from  https://github.com/Gnucash/gnucash/commit/9ee3dd95 (commit)



commit b011c81b624ac870b4b6b1967296109e7bfacc50
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Jul 2 21:38:23 2023 +0800

    [gnc-backend-dbi.cpp] if returning early, don't allocate char*
    
    this function may return early causing leak from allocating
    g_build_filename.

diff --git a/libgnucash/backend/dbi/gnc-backend-dbi.cpp b/libgnucash/backend/dbi/gnc-backend-dbi.cpp
index abc3822411..f15aa0567c 100644
--- a/libgnucash/backend/dbi/gnc-backend-dbi.cpp
+++ b/libgnucash/backend/dbi/gnc-backend-dbi.cpp
@@ -1094,12 +1094,14 @@ gnc_module_init_backend_dbi (void)
 #endif
     if (num_drivers <= 0)
     {
+#if HAVE_LIBDBI_R
+        if (dbi_instance)
+            return;
+#endif
         gchar *libdir = gnc_path_get_libdir ();
         gchar *dir = g_build_filename (libdir, "dbd", nullptr);
         g_free (libdir);
 #if HAVE_LIBDBI_R
-        if (dbi_instance)
-            return;
         num_drivers = dbi_initialize_r (dir, &dbi_instance);
 #else
         num_drivers = dbi_initialize (dir);



Summary of changes:
 libgnucash/backend/dbi/gnc-backend-dbi.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)



More information about the gnucash-changes mailing list