diff options
| author | Jonas Schnelli <[email protected]> | 2015-03-13 21:51:27 +0100 |
|---|---|---|
| committer | Luke Dashjr <[email protected]> | 2016-12-29 11:43:28 +0000 |
| commit | 9044908636f0072d001d9a029053a384127b002b (patch) | |
| tree | b222ea5dc55ec50a39ec5ddb1563c69ded8486a6 /src/qt/rpcconsole.cpp | |
| parent | Qt/RPCConsole: Save current command entry when browsing history (diff) | |
| download | discoin-9044908636f0072d001d9a029053a384127b002b.tar.xz discoin-9044908636f0072d001d9a029053a384127b002b.zip | |
Qt/RPCConsole: Don't store commands with potentially sensitive information in the history
Filters importprivkey, signrawtransaction, walletpassphrase, walletpassphrasechange, and encryptwallet
Diffstat (limited to 'src/qt/rpcconsole.cpp')
| -rw-r--r-- | src/qt/rpcconsole.cpp | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 5610e8b6c..562c9509d 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -63,6 +63,14 @@ const struct { {NULL, NULL} }; +// don't add private key handling cmd's to the history +const QStringList RPCConsole::historyFilter = QStringList() + << "importprivkey" + << "signrawtransaction" + << "walletpassphrase" + << "walletpassphrasechange" + << "encryptwallet"; + /* Object for executing console RPC commands in a separate thread. */ class RPCExecutor : public QObject @@ -755,15 +763,26 @@ void RPCConsole::on_lineEdit_returnPressed() message(CMD_REQUEST, cmd); Q_EMIT cmdRequest(cmd); - // Remove command, if already in history - history.removeOne(cmd); - // Append command to history - history.append(cmd); - // Enforce maximum history size - while(history.size() > CONSOLE_HISTORY) - history.removeFirst(); - // Set pointer to end of history - historyPtr = history.size(); + + bool storeHistory = true; + Q_FOREACH(QString unallowedCmd, historyFilter) + { + if (cmd.trimmed().startsWith(unallowedCmd)) + storeHistory = false; break; + } + + if (storeHistory) + { + // Remove command, if already in history + history.removeOne(cmd); + // Append command to history + history.append(cmd); + // Enforce maximum history size + while(history.size() > CONSOLE_HISTORY) + history.removeFirst(); + // Set pointer to end of history + historyPtr = history.size(); + } // Scroll console view to end scrollToEnd(); } |