summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2012-05-10 15:39:53 -0700
committerThe Android Automerger <android-build@android.com>2012-05-10 18:09:40 -0700
commit59f31de0d445b61a1f04d1362c276a960ebbea70 (patch)
treeb134ff8e6bddf13a2d52e692d1429d7df395c32a
parente9435395d070c8748cfe8b0c95cb004950435d29 (diff)
downloadsystem_vold-59f31de0d445b61a1f04d1362c276a960ebbea70.zip
system_vold-59f31de0d445b61a1f04d1362c276a960ebbea70.tar.gz
system_vold-59f31de0d445b61a1f04d1362c276a960ebbea70.tar.bz2
Only set permissions on dirs or files
Traversal would mark directories with the correct permissions, but they're visited again in post-order which is a different fts_info flag. Then it would set that to regular file permissions. Explicitly check to make sure we're looking at a file instead. Bug: 6478606 Change-Id: I13cab3e69f451da6a994fa974d575ef366f82025
-rw-r--r--VolumeManager.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index 3a63a19..fe1ce8e 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -571,7 +571,7 @@ int VolumeManager::fixupAsecPermissions(const char *id, gid_t gid, const char* f
if (ftsent->fts_info & FTS_D) {
result |= fchmod(fd, 0711);
- } else {
+ } else if (ftsent->fts_info & FTS_F) {
result |= fchmod(fd, privateFile ? 0640 : 0644);
}
close(fd);