diff options
author | Kenny Root <kroot@google.com> | 2012-05-10 15:39:53 -0700 |
---|---|---|
committer | The Android Automerger <android-build@android.com> | 2012-05-10 18:09:40 -0700 |
commit | 59f31de0d445b61a1f04d1362c276a960ebbea70 (patch) | |
tree | b134ff8e6bddf13a2d52e692d1429d7df395c32a | |
parent | e9435395d070c8748cfe8b0c95cb004950435d29 (diff) | |
download | system_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.cpp | 2 |
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); |