gnucash master: [gnc-account-sel] fix entered_text leak

Christopher Lam clam at code.gnucash.org
Fri Mar 24 09:47:51 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/03bca602 (commit)
	from  https://github.com/Gnucash/gnucash/commit/d529c427 (commit)



commit 03bca6023c837f4e0b20660e77ac6cf4c3749f11
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Mar 24 18:09:09 2023 +0800

    [gnc-account-sel] fix entered_text leak
    
    if entered_text was "" it'd leak.

diff --git a/gnucash/gnome-utils/gnc-account-sel.c b/gnucash/gnome-utils/gnc-account-sel.c
index 801016ab16..92edda22e7 100644
--- a/gnucash/gnome-utils/gnc-account-sel.c
+++ b/gnucash/gnome-utils/gnc-account-sel.c
@@ -326,7 +326,7 @@ completion_function (GtkEntryCompletion *completion, const char *key,
 }
 
 static char*
-normalize_and_lower (char* utf8_string)
+normalize_and_lower (const char* utf8_string)
 {
     char *normalized, *lowered;
     g_return_val_if_fail (utf8_string && *utf8_string, NULL);
@@ -413,7 +413,7 @@ entry_insert_text_cb (GtkEntry *entry, const gchar *text, gint length,
     GNCAccountSel *gas = GNC_ACCOUNT_SEL(user_data);
     GtkTreeModel *fmodel = gtk_combo_box_get_model (GTK_COMBO_BOX(gas->combo));
     const gchar *sep_char = gnc_get_account_separator_string ();
-    gchar *entered_text, *lower_entered_text;
+    gchar *lower_entered_text;
     glong entered_len;
     gunichar sep_unichar;
     gint sep_key_prefix_len = G_MAXINT;
@@ -425,7 +425,7 @@ entry_insert_text_cb (GtkEntry *entry, const gchar *text, gint length,
 
     memset (gas->sep_key_prefix, 0, BUFLEN);
 
-    entered_text = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1);
+    const gchar *entered_text = gtk_entry_get_text (entry);
 
     if (!(entered_text && *entered_text))
         return;
@@ -469,7 +469,6 @@ entry_insert_text_cb (GtkEntry *entry, const gchar *text, gint length,
         g_utf8_strncpy (gas->sep_key_prefix, entered_text, entered_len);
 
     g_free (lower_entered_text);
-    g_free (entered_text);
 
     if (gas->sep_key_prefix[0] != 0)
     {



Summary of changes:
 gnucash/gnome-utils/gnc-account-sel.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)



More information about the gnucash-changes mailing list