Package: gnucash
Version: 2.2.4-2
Severity: serious
Justification: Might cause data loss
Tags: fixed-upstream patch

Hi Thomas,

on the Gnucash development Andreas Köhler [1]mentioned a bugfix he made
in the Online Banking Setup Wizard: After showing the matching page
twice and finishing the druid Gnucash crashes. If changes were made (for
instance transactions entered or changed) prior to the crash, those
changes would be lost with this crash. Hence I've chosen severity serious.

1.
http://www.nabble.com/Re%3A-ofxdirectconnect-in-aqbanking3-branch-p18553758.html

Fortunately the bug is fixed in upstream in the changeset [2]17346,
which has been released with Gnucash 2.2.6 recently. I've extracted the
changeset and attached it to this mail as a patch. You should be able to
apply this patch on top of the unpackaged (thus already patched) source
package of gnucash 2.2.4-2 using the command
"patch -p0 < /path/to/matching_page_crash.patch".

2. http://svn.gnucash.org/trac/changeset/17346

It would be very helpful if this patch finds its way into the release of
Debian Lenny.

Regards
  Micha


Index: src/import-export/aqbanking/druid-ab-initial.c
===================================================================
--- src/import-export/aqbanking/druid-ab-initial.c	(Revision 17345)
+++ src/import-export/aqbanking/druid-ab-initial.c	(Revision 17346)
@@ -88,6 +88,7 @@
     GtkWidget *druid;
 
     /* account match page */
+    gboolean match_page_prepared;
     GtkTreeView *account_view;
     GtkListStore *account_store;
 
@@ -309,13 +310,18 @@
     Account *root;
     AccCbData data;
 
-
     g_return_if_fail(info && info->api);
 
     /* No way back */
     gnome_druid_set_buttons_sensitive(GNOME_DRUID(info->druid),
                                       FALSE, TRUE, TRUE, TRUE);
 
+    /* Do not run this twice */
+    if (info->match_page_prepared)
+        return;
+    else
+        info->match_page_prepared = TRUE;
+
     /* Load aqbanking accounts */
     AB_Banking_OnlineInit(info->api);
 
@@ -738,6 +744,7 @@
     info->deferred_info = NULL;
     info->gnc_hash = NULL;
 
+    info->match_page_prepared = FALSE;
     info->account_view =
         GTK_TREE_VIEW(glade_xml_get_widget(xml, "account_page_view"));
     info->account_store = gtk_list_store_new(NUM_ACCOUNT_LIST_COLS,

Reply via email to