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

Commit 1a65546a authored by Mike Lockwood's avatar Mike Lockwood
Browse files

DO NOT MERGE MediaScanner: Fix bug in "no media" handling logic



Don't let the "no media" status of one directory leak to the remaining files
and directories in the same parent.

Bug: 4364077

Change-Id: Ie756ccd06b1962b06143fc02a1a3927c3aba143a
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent aeb65d45
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -135,20 +135,21 @@ status_t MediaScanner::doProcessDirectory(
        }
        if (type == DT_REG || type == DT_DIR) {
            if (type == DT_DIR) {
                bool childNoMedia = noMedia;
                // set noMedia flag on directories with a name that starts with '.'
                // for example, the Mac ".Trashes" directory
                if (name[0] == '.')
                    noMedia = true;
                    childNoMedia = true;

                // report the directory to the client
                if (stat(path, &statbuf) == 0) {
                    client.scanFile(path, statbuf.st_mtime, 0, true, noMedia);
                    client.scanFile(path, statbuf.st_mtime, 0, true, childNoMedia);
                }

                // and now process its contents
                strcat(fileSpot, "/");
                int err = doProcessDirectory(path, pathRemaining - nameLength - 1, client,
                        noMedia, exceptionCheck, exceptionEnv);
                        childNoMedia, exceptionCheck, exceptionEnv);
                if (err) {
                    // pass exceptions up - ignore other errors
                    if (exceptionCheck && exceptionCheck(exceptionEnv)) goto failure;