summaryrefslogtreecommitdiffstats
path: root/media/mtp/MtpDevice.cpp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-11-19 13:52:20 -0500
committerMike Lockwood <lockwood@android.com>2010-11-19 13:55:22 -0500
commit27afe3a1cc9c07ac4884a7720087a597aea3c76f (patch)
tree9b82ea60a4996f39d1e0a33cc1fb300f7771143b /media/mtp/MtpDevice.cpp
parentb9ff444a7eaf7ffd43970c0477110c6808bd4a7c (diff)
downloadframeworks_av-27afe3a1cc9c07ac4884a7720087a597aea3c76f.zip
frameworks_av-27afe3a1cc9c07ac4884a7720087a597aea3c76f.tar.gz
frameworks_av-27afe3a1cc9c07ac4884a7720087a597aea3c76f.tar.bz2
PTP: Fix permissions problems with files imported via PTP
Change-Id: I630a89c67e5b3d6d0c29e6c257f84e1909fa4de2 Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/mtp/MtpDevice.cpp')
-rw-r--r--media/mtp/MtpDevice.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/media/mtp/MtpDevice.cpp b/media/mtp/MtpDevice.cpp
index 1b23a8e..416ebfe 100644
--- a/media/mtp/MtpDevice.cpp
+++ b/media/mtp/MtpDevice.cpp
@@ -349,7 +349,7 @@ MtpProperty* MtpDevice::getDevicePropDesc(MtpDeviceProperty code) {
}
// reads the object's data and writes it to the specified file path
-bool MtpDevice::readObject(MtpObjectHandle handle, const char* destPath) {
+bool MtpDevice::readObject(MtpObjectHandle handle, const char* destPath, int group, int perm) {
LOGD("readObject: %s", destPath);
int fd = ::open(destPath, O_RDWR | O_CREAT | O_TRUNC);
if (fd < 0) {
@@ -357,6 +357,12 @@ bool MtpDevice::readObject(MtpObjectHandle handle, const char* destPath) {
return false;
}
+ fchown(fd, getuid(), group);
+ // set permissions
+ int mask = umask(0);
+ fchmod(fd, perm);
+ umask(mask);
+
Mutex::Autolock autoLock(mMutex);
bool result = false;