From 926b5139da92a1944c6db4168c766828ec54cb4f Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Wed, 14 Nov 2018 21:12:44 +0100 Subject: [PATCH] Fix crash when processing QR code content with a bad URI format --- app/src/main/java/me/impy/aegis/otp/GoogleAuthInfo.java | 8 ++++++++ app/src/main/java/me/impy/aegis/ui/ScannerActivity.java | 3 +-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/me/impy/aegis/otp/GoogleAuthInfo.java b/app/src/main/java/me/impy/aegis/otp/GoogleAuthInfo.java index 478833c4..daea4086 100644 --- a/app/src/main/java/me/impy/aegis/otp/GoogleAuthInfo.java +++ b/app/src/main/java/me/impy/aegis/otp/GoogleAuthInfo.java @@ -48,6 +48,14 @@ public class GoogleAuthInfo { return builder.build(); } + public static GoogleAuthInfo parseUri(String s) throws GoogleAuthInfoException { + Uri uri = Uri.parse(s); + if (uri == null) { + throw new GoogleAuthInfoException("bad uri format"); + } + return GoogleAuthInfo.parseUri(uri); + } + public static GoogleAuthInfo parseUri(Uri uri) throws GoogleAuthInfoException { if (!uri.getScheme().equals("otpauth")) { throw new GoogleAuthInfoException("unsupported protocol"); diff --git a/app/src/main/java/me/impy/aegis/ui/ScannerActivity.java b/app/src/main/java/me/impy/aegis/ui/ScannerActivity.java index b7f8f720..908625ec 100644 --- a/app/src/main/java/me/impy/aegis/ui/ScannerActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/ScannerActivity.java @@ -108,8 +108,7 @@ public class ScannerActivity extends AegisActivity implements ZXingScannerView.R public void handleResult(Result rawResult) { try { // parse google auth uri - Uri uri = Uri.parse(rawResult.getText()); - GoogleAuthInfo info = GoogleAuthInfo.parseUri(uri); + GoogleAuthInfo info = GoogleAuthInfo.parseUri(rawResult.getText()); DatabaseEntry entry = new DatabaseEntry(info); Intent intent = new Intent();