From afde12f265bbc4742b329c6adecc853cb68a7155 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Tue, 4 Oct 2016 04:17:27 +0000 Subject: [PATCH] Qt/RPCConsole: Refactor command_may_contain_sensitive_data function out of RPCConsole::on_lineEdit_returnPressed --- src/qt/rpcconsole.cpp | 26 ++++++++++++++++---------- src/qt/rpcconsole.h | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 8aa3d10eb..23a4a2507 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -63,14 +63,28 @@ const struct { {NULL, NULL} }; +namespace { + // don't add private key handling cmd's to the history -const QStringList RPCConsole::historyFilter = QStringList() +const QStringList historyFilter = QStringList() << "importprivkey" << "signrawtransaction" << "walletpassphrase" << "walletpassphrasechange" << "encryptwallet"; +bool command_may_contain_sensitive_data(const QString cmd) +{ + Q_FOREACH(QString unallowedCmd, historyFilter) { + if (cmd.trimmed().startsWith(unallowedCmd)) { + return true; + } + } + return false; +} + +} + /* Object for executing console RPC commands in a separate thread. */ class RPCExecutor : public QObject @@ -764,15 +778,7 @@ void RPCConsole::on_lineEdit_returnPressed() message(CMD_REQUEST, cmd); Q_EMIT cmdRequest(cmd); - bool storeHistory = true; - Q_FOREACH(QString unallowedCmd, historyFilter) - { - if (cmd.trimmed().startsWith(unallowedCmd)) - { - storeHistory = false; - break; - } - } + bool storeHistory = !command_may_contain_sensitive_data(cmd); if (storeHistory) { diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h index 4841ea825..e1698711d 100644 --- a/src/qt/rpcconsole.h +++ b/src/qt/rpcconsole.h @@ -140,7 +140,6 @@ private: ClientModel *clientModel; QStringList history; int historyPtr; - const static QStringList historyFilter; QString cmdBeforeBrowsing; QList cachedNodeids; const PlatformStyle *platformStyle;