diff options
author | Mike Lockwood <lockwood@android.com> | 2010-10-05 13:35:27 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2010-10-05 13:35:27 -0400 |
commit | 439e88e7d09bfeac4690f2d9df6533955aa4fa88 (patch) | |
tree | c0789b80607a28ebd31c0528c6033d824e19900b /android | |
parent | de2b3240539802d409a25760d5cec9d4ebfd6686 (diff) |
Allow _DELETE_FILE trigger to delete files in /data/media
Change-Id: I8a3f620cd6633f2be47ac05e17ea642f00b71e91
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'android')
-rw-r--r-- | android/sqlite3_android.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/android/sqlite3_android.cpp b/android/sqlite3_android.cpp index 11de1f7..ab52c5c 100644 --- a/android/sqlite3_android.cpp +++ b/android/sqlite3_android.cpp @@ -26,6 +26,7 @@ #include <unicode/ustring.h> #include <unicode/utypes.h> #include <cutils/log.h> +#include <cutils/properties.h> #include "sqlite3_android.h" #include "PhoneNumberUtils.h" @@ -190,13 +191,17 @@ static void delete_file(sqlite3_context * context, int argc, sqlite3_value ** ar } char const * path = (char const *)sqlite3_value_text(argv[0]); + char media_storage[PROPERTY_VALUE_MAX]; char const * external_storage = getenv("EXTERNAL_STORAGE"); - if (path == NULL || external_storage == NULL) { + if (path == NULL) { sqlite3_result_null(context); return; } - if (strncmp(external_storage, path, strlen(external_storage)) != 0) { + property_get("ro.media.storage", media_storage, ""); + // path must match either ro.media.storage or EXTERNAL_STORAGE directory + if ( !(media_storage[0] && strncmp(media_storage, path, strlen(media_storage)) == 0) && + !(external_storage && strncmp(external_storage, path, strlen(external_storage)) == 0)) { sqlite3_result_null(context); return; } |