From dba1362e49bc4baa56e5a4e4d91b908a66a7a6c1 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Wed, 24 Jun 2020 15:21:23 -0300 Subject: [PATCH] Return after 'reject' in Promise constructor There were three cases where execution unintentionally continued after an error was encountered. These cases likely are impossible to encounter in practice due to recent validation improvements in the `eth-json-rpc-middleware/wallet` module, but they were broken nonetheless. Execution inside the Promise constructor now halts immediately after `reject` is called. --- app/scripts/lib/decrypt-message-manager.js | 2 +- app/scripts/lib/encryption-public-key-manager.js | 2 +- app/scripts/lib/personal-message-manager.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/scripts/lib/decrypt-message-manager.js b/app/scripts/lib/decrypt-message-manager.js index 94f88d12d6b4..6345dbf57498 100644 --- a/app/scripts/lib/decrypt-message-manager.js +++ b/app/scripts/lib/decrypt-message-manager.js @@ -82,7 +82,7 @@ export default class DecryptMessageManager extends EventEmitter { addUnapprovedMessageAsync (msgParams, req) { return new Promise((resolve, reject) => { if (!msgParams.from) { - reject(new Error('MetaMask Decryption: from field is required.')) + return reject(new Error('MetaMask Decryption: from field is required.')) } const msgId = this.addUnapprovedMessage(msgParams, req) this.once(`${msgId}:finished`, (data) => { diff --git a/app/scripts/lib/encryption-public-key-manager.js b/app/scripts/lib/encryption-public-key-manager.js index f568c62db4d4..92f09057c692 100644 --- a/app/scripts/lib/encryption-public-key-manager.js +++ b/app/scripts/lib/encryption-public-key-manager.js @@ -79,7 +79,7 @@ export default class EncryptionPublicKeyManager extends EventEmitter { addUnapprovedMessageAsync (address, req) { return new Promise((resolve, reject) => { if (!address) { - reject(new Error('MetaMask Message: address field is required.')) + return reject(new Error('MetaMask Message: address field is required.')) } const msgId = this.addUnapprovedMessage(address, req) this.once(`${msgId}:finished`, (data) => { diff --git a/app/scripts/lib/personal-message-manager.js b/app/scripts/lib/personal-message-manager.js index 1050abefd01a..7d603a583618 100644 --- a/app/scripts/lib/personal-message-manager.js +++ b/app/scripts/lib/personal-message-manager.js @@ -85,7 +85,7 @@ export default class PersonalMessageManager extends EventEmitter { addUnapprovedMessageAsync (msgParams, req) { return new Promise((resolve, reject) => { if (!msgParams.from) { - reject(new Error('MetaMask Message Signature: from field is required.')) + return reject(new Error('MetaMask Message Signature: from field is required.')) } const msgId = this.addUnapprovedMessage(msgParams, req) this.once(`${msgId}:finished`, (data) => {