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

Commit 76ddaeb2 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Fix two bugs in external storage accounting.

When doing a manual tree walk, we always want to inherit fts_number
from the parent fts node.

For create_data_media_package_path(), two of the arguments had been
swapped.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 27948817, 30927649
Change-Id: Ic3cbf387cf119aa82af6e380bde9d9b069f6bfb0
parent af78fe13
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1184,6 +1184,7 @@ static void collectManualExternalStatsForUser(const std::string& path, struct st
        return;
    }
    while ((p = fts_read(fts)) != NULL) {
        p->fts_number = p->fts_parent->fts_number;
        switch (p->fts_info) {
        case FTS_D:
            if (p->fts_level == 4
@@ -1192,7 +1193,6 @@ static void collectManualExternalStatsForUser(const std::string& path, struct st
                    && !strcmp(p->fts_parent->fts_parent->fts_parent->fts_name, "Android")) {
                p->fts_number = 1;
            }
            p->fts_number = p->fts_parent->fts_number;
            // Fall through to count the directory
        case FTS_DEFAULT:
        case FTS_F:
@@ -1296,9 +1296,9 @@ binder::Status InstalldNativeService::getAppSize(const std::unique_ptr<std::stri
            ATRACE_END();

            ATRACE_BEGIN("external");
            auto extPath = create_data_media_package_path(uuid_, userId, pkgname, "data");
            auto extPath = create_data_media_package_path(uuid_, userId, "data", pkgname);
            collectManualStats(extPath, &extStats);
            auto mediaPath = create_data_media_package_path(uuid_, userId, pkgname, "media");
            auto mediaPath = create_data_media_package_path(uuid_, userId, "media", pkgname);
            calculate_tree_size(mediaPath, &extStats.dataSize);
            ATRACE_END();
        }