From dc97adc7a11da93192b25de2f47d082da9697442 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 16 Jul 2019 20:08:41 -0700 Subject: [PATCH] Fix upgrading from a build prior to cert pinning support --- app/build.gradle | 4 ++-- .../computers/LegacyDatabaseReader2.java | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d295c0f8..668e3a39 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { minSdkVersion 16 targetSdkVersion 29 - versionName "7.4" - versionCode = 195 + versionName "8.0" + versionCode = 196 } flavorDimensions "root" diff --git a/app/src/main/java/com/limelight/computers/LegacyDatabaseReader2.java b/app/src/main/java/com/limelight/computers/LegacyDatabaseReader2.java index 37aef2ba..2a8d1e7c 100644 --- a/app/src/main/java/com/limelight/computers/LegacyDatabaseReader2.java +++ b/app/src/main/java/com/limelight/computers/LegacyDatabaseReader2.java @@ -28,15 +28,18 @@ public class LegacyDatabaseReader2 { details.manualAddress = c.getString(4); details.macAddress = c.getString(5); - try { - byte[] derCertData = c.getBlob(6); + // This column wasn't always present in the old schema + if (c.getColumnCount() >= 7) { + try { + byte[] derCertData = c.getBlob(6); - if (derCertData != null) { - details.serverCert = (X509Certificate) CertificateFactory.getInstance("X.509") - .generateCertificate(new ByteArrayInputStream(derCertData)); + if (derCertData != null) { + details.serverCert = (X509Certificate) CertificateFactory.getInstance("X.509") + .generateCertificate(new ByteArrayInputStream(derCertData)); + } + } catch (CertificateException e) { + e.printStackTrace(); } - } catch (CertificateException e) { - e.printStackTrace(); } // This signifies we don't have dynamic state (like pair state)