From 8790877c9255026fffcba22ef866215c7b151cf2 Mon Sep 17 00:00:00 2001
From: Lennart Goedhart <lennart@omnibase.com.au>
Date: Wed, 11 May 2016 19:44:53 +1000
Subject: [PATCH] Properly close DB handles so that we don't leak them.

---
 .../medtronic/data/CNLConfigDbHelper.java     | 26 ++++++++++++-------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java b/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java
index 5e0841a..7fe755d 100644
--- a/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java
+++ b/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java
@@ -58,6 +58,7 @@ public class CNLConfigDbHelper extends SQLiteOpenHelper {
         insertValues.put(CNLConfigContract.ConfigEntry.COLUMN_NAME_KEY, "");
         insertValues.put(CNLConfigContract.ConfigEntry.COLUMN_NAME_LAST_RADIO_CHANNEL, 0x14 );
         configDb.insertWithOnConflict(CNLConfigContract.ConfigEntry.TABLE_NAME, null, insertValues, SQLiteDatabase.CONFLICT_IGNORE);
+        configDb.close();
     }
 
     public String getHmac( String stickSerial ){
@@ -67,14 +68,16 @@ public class CNLConfigDbHelper extends SQLiteOpenHelper {
                 new String[] { CNLConfigContract.ConfigEntry.COLUMN_NAME_HMAC },
                 CNLConfigContract.ConfigEntry.COLUMN_NAME_STICK_SERIAL + " = ?", new String[]{ stickSerial }, null, null, null);
 
+        String hmac = null;
+
         if (cursor != null && cursor.moveToFirst()) {
-            String hmac = cursor.getString(cursor.getColumnIndex(CNLConfigContract.ConfigEntry.COLUMN_NAME_HMAC));
+            hmac = cursor.getString(cursor.getColumnIndex(CNLConfigContract.ConfigEntry.COLUMN_NAME_HMAC));
             cursor.close();
-
-            return hmac;
-        } else {
-            return null;
         }
+
+        configDb.close();
+
+        return hmac;
     }
 
     public String getKey( String stickSerial ){
@@ -84,14 +87,16 @@ public class CNLConfigDbHelper extends SQLiteOpenHelper {
                 new String[] { CNLConfigContract.ConfigEntry.COLUMN_NAME_KEY },
                 CNLConfigContract.ConfigEntry.COLUMN_NAME_STICK_SERIAL + " = ?", new String[]{ stickSerial }, null, null, null);
 
+        String key = null;
+
         if (cursor != null && cursor.moveToFirst()) {
-            String hmac = cursor.getString(cursor.getColumnIndex(CNLConfigContract.ConfigEntry.COLUMN_NAME_KEY));
+            key = cursor.getString(cursor.getColumnIndex(CNLConfigContract.ConfigEntry.COLUMN_NAME_KEY));
             cursor.close();
-
-            return hmac;
-        } else {
-            return null;
         }
+
+        configDb.close();
+
+        return key;
     }
 
     public int setHmacAndKey( String stickSerial, String hmac, String key ) {
@@ -112,6 +117,7 @@ public class CNLConfigDbHelper extends SQLiteOpenHelper {
                 whereArgs
         );
 
+        configDb.close();
         return affectedRows;
     }
 
-- 
GitLab