summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-10-05 13:35:27 -0400
committerMike Lockwood <lockwood@android.com>2010-10-05 13:35:27 -0400
commit439e88e7d09bfeac4690f2d9df6533955aa4fa88 (patch)
treec0789b80607a28ebd31c0528c6033d824e19900b /android
parentde2b3240539802d409a25760d5cec9d4ebfd6686 (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.cpp9
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;
}