Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83f444c2 authored by Chris Soyars's avatar Chris Soyars Committed by Steve Kondik
Browse files

[installd] /sd-ext/app is a valid APK location.

parent be6377f8
Loading
Loading
Loading
Loading
+9 −17
Original line number Diff line number Diff line
@@ -159,24 +159,16 @@ int free_cache(int free_size)
 */
static int is_valid_apk_path(const char *path)
{
    int len = strlen(APK_DIR_PREFIX);
    if (strncmp(path, APK_DIR_PREFIX, len)) {
        len = strlen(PROTECTED_DIR_PREFIX);
        if (strncmp(path, PROTECTED_DIR_PREFIX, len)) {
            LOGE("invalid apk path '%s' (bad prefix)\n", path);
            return 0;
        }
    }
    if (strchr(path + len, '/')) {
        LOGE("invalid apk path '%s' (subdir?)\n", path);
        return 0;
    }
    if (path[len] == '.') {
        LOGE("invalid apk path '%s' (trickery)\n", path);
    int len1 = strlen(APK_DIR_PREFIX);
    int len2 = strlen(PROTECTED_DIR_PREFIX);
    int len3 = strlen(APK_EXT_DIR_PREFIX);

    if (strncmp(path, APK_DIR_PREFIX, len1)==0) return 1;
    if (strncmp(path, PROTECTED_DIR_PREFIX, len2)==0) return 1;
    if (strncmp(path, APK_EXT_DIR_PREFIX, len3)==0) return 1;

    return 0;
}
    return 1;
}

int move_dex(const char *src, const char *dst)
{
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@
#define CACHE_DIR_POSTFIX      "/cache"

#define APK_DIR_PREFIX         "/data/app/"
#define APK_EXT_DIR_PREFIX     "/sd-ext/app/"

/* other handy constants */