|
Rex Dieter |
8d984d2 |
From 326578a1ff79a83b748e6575cffd727521425b09 Mon Sep 17 00:00:00 2001
|
|
Rex Dieter |
8d984d2 |
From: =?UTF-8?q?Cristian=20One=C8=9B?= <onet.cristian@gmail.com>
|
|
Rex Dieter |
8d984d2 |
Date: Mon, 26 Nov 2012 21:27:33 +0200
|
|
Rex Dieter |
8d984d2 |
Subject: [PATCH 10/22] Fix a possible crash while mapping an OFX account.
|
|
Rex Dieter |
8d984d2 |
|
|
Rex Dieter |
8d984d2 |
The possibility occurred because the event loop is running
|
|
Rex Dieter |
8d984d2 |
while the https request is performed. To avoid the crash
|
|
Rex Dieter |
8d984d2 |
disable the back button.
|
|
Rex Dieter |
8d984d2 |
|
|
Rex Dieter |
8d984d2 |
BUG: 296681
|
|
Rex Dieter |
8d984d2 |
(cherry picked from commit 62c62948cad0841dc585146a7ad55ee533d86097)
|
|
Rex Dieter |
8d984d2 |
---
|
|
Rex Dieter |
8d984d2 |
kmymoney/plugins/ofximport/dialogs/konlinebankingsetupwizard.cpp | 6 ++++++
|
|
Rex Dieter |
8d984d2 |
1 file changed, 6 insertions(+)
|
|
Rex Dieter |
8d984d2 |
|
|
Rex Dieter |
8d984d2 |
diff --git a/kmymoney/plugins/ofximport/dialogs/konlinebankingsetupwizard.cpp b/kmymoney/plugins/ofximport/dialogs/konlinebankingsetupwizard.cpp
|
|
Rex Dieter |
8d984d2 |
index 8c3738b..8739ad4 100644
|
|
Rex Dieter |
8d984d2 |
--- a/kmymoney/plugins/ofximport/dialogs/konlinebankingsetupwizard.cpp
|
|
Rex Dieter |
8d984d2 |
+++ b/kmymoney/plugins/ofximport/dialogs/konlinebankingsetupwizard.cpp
|
|
Rex Dieter |
8d984d2 |
@@ -326,7 +326,13 @@ bool KOnlineBankingSetupWizard::finishLoginPage(void)
|
|
Rex Dieter |
8d984d2 |
|
|
Rex Dieter |
8d984d2 |
KUrl filename(QString("%1response.ofx").arg(KStandardDirs::locateLocal("appdata", "")));
|
|
Rex Dieter |
8d984d2 |
QByteArray req(libofx_request_accountinfo(&fi);;
|
|
Rex Dieter |
8d984d2 |
+ // because the event loop is running while the request is performed disable the back button
|
|
Rex Dieter |
8d984d2 |
+ // (this function is not reentrant so the application might crash when back/next are used)
|
|
Rex Dieter |
8d984d2 |
+ QAbstractButton *backButton = button(QWizard::BackButton);
|
|
Rex Dieter |
8d984d2 |
+ bool backButtonState = backButton->isEnabled();
|
|
Rex Dieter |
8d984d2 |
+ backButton->setEnabled(false);
|
|
Rex Dieter |
8d984d2 |
OfxHttpsRequest(QString("POST"), KUrl((*m_it_info).url), req, QMap<QString, QString>(), filename, true);
|
|
Rex Dieter |
8d984d2 |
+ backButton->setEnabled(backButtonState);
|
|
Rex Dieter |
8d984d2 |
|
|
Rex Dieter |
8d984d2 |
LibofxContextPtr ctx = libofx_get_new_context();
|
|
Rex Dieter |
8d984d2 |
Q_CHECK_PTR(ctx);
|
|
Rex Dieter |
8d984d2 |
--
|
|
Rex Dieter |
8d984d2 |
1.8.1.4
|
|
Rex Dieter |
8d984d2 |
|