From 1d8e7d640ad5ed6fe82bca017293dd89169f1c2e Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Sun, 9 Oct 2011 15:24:53 -0700 Subject: [PATCH] Fix Cursor leak in SettingsBackupAgent. Bug: 5434060 Change-Id: I805695a30d6778d0c7302e63bcfe3dc1a38488f4 --- .../providers/settings/SettingsBackupAgent.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index b851ab7ec81c2..2444829154904 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -350,16 +350,21 @@ public class SettingsBackupAgent extends BackupAgentHelper { private byte[] getSystemSettings() { Cursor cursor = getContentResolver().query(Settings.System.CONTENT_URI, PROJECTION, null, null, null); - byte[] result = extractRelevantValues(cursor, Settings.System.SETTINGS_TO_BACKUP); - cursor.close(); - return result; + try { + return extractRelevantValues(cursor, Settings.System.SETTINGS_TO_BACKUP); + } finally { + cursor.close(); + } } private byte[] getSecureSettings() { Cursor cursor = getContentResolver().query(Settings.Secure.CONTENT_URI, PROJECTION, null, null, null); - byte[] result = extractRelevantValues(cursor, Settings.Secure.SETTINGS_TO_BACKUP); - return result; + try { + return extractRelevantValues(cursor, Settings.Secure.SETTINGS_TO_BACKUP); + } finally { + cursor.close(); + } } private void restoreSettings(BackupDataInput data, Uri contentUri) {