From 7c0c06705ea7e8a0266b0946fb66061e9b33302e Mon Sep 17 00:00:00 2001 From: Chad Scharf <3904944+cscharf@users.noreply.github.com> Date: Thu, 6 Aug 2020 12:27:49 -0400 Subject: [PATCH] added try-catch around ext module calls (#143) --- src/electron/biometric.windows.main.ts | 50 ++++++++++++++++---------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/electron/biometric.windows.main.ts b/src/electron/biometric.windows.main.ts index 84ae41ae83c..1d9f3df0088 100644 --- a/src/electron/biometric.windows.main.ts +++ b/src/electron/biometric.windows.main.ts @@ -62,12 +62,17 @@ export default class BiometricWindowsMain implements BiometricMain { const module = this.getWindowsSecurityCredentialsUiModule(); if (module != null) { return new Promise((resolve, reject) => { - module.UserConsentVerifier.checkAvailabilityAsync((error: Error, result: any) => { - if (error) { - return resolve(null); - } - return resolve(result); - }); + try { + module.UserConsentVerifier.checkAvailabilityAsync((error: Error, result: any) => { + if (error) { + return resolve(null); + } + return resolve(result); + }); + } catch { + this.isError = true; + return resolve(null); + } }); } return Promise.resolve(null); @@ -77,25 +82,32 @@ export default class BiometricWindowsMain implements BiometricMain { const module = this.getWindowsSecurityCredentialsUiModule(); if (module != null) { return new Promise((resolve, reject) => { - module.UserConsentVerifier.requestVerificationAsync(message, (error: Error, result: any) => { - if (error) { - return resolve(null); - } - return resolve(result); - }); + try { + module.UserConsentVerifier.requestVerificationAsync(message, (error: Error, result: any) => { + if (error) { + return resolve(null); + } + return resolve(result); + }); + } catch (error) { + this.isError = true; + return reject(error); + } }); } return Promise.resolve(null); } getAllowedAvailabilities(): any[] { - const module = this.getWindowsSecurityCredentialsUiModule(); - if (module != null) { - return [ - module.UserConsentVerifierAvailability.available, - module.UserConsentVerifierAvailability.deviceBusy, - ]; - } + try { + const module = this.getWindowsSecurityCredentialsUiModule(); + if (module != null) { + return [ + module.UserConsentVerifierAvailability.available, + module.UserConsentVerifierAvailability.deviceBusy, + ]; + } + } catch { /*Ignore error*/ } return []; } }