diff options
author | Tri Vo <trong@google.com> | 2019-03-27 10:49:37 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-03-27 10:49:37 -0700 |
commit | 39d57cb5cb3db0ce9078b98fd92d4b6dfb57fbe1 (patch) | |
tree | d8bd391b69d139864072345cfcbac127bc4243a5 | |
parent | 16bd8c774c921f6fe693a059412c5ba05e28116b (diff) | |
parent | 3f5816670ee13f3005882fce2a0a78974381e260 (diff) | |
download | platform_system_ashmemd-39d57cb5cb3db0ce9078b98fd92d4b6dfb57fbe1.tar.gz platform_system_ashmemd-39d57cb5cb3db0ce9078b98fd92d4b6dfb57fbe1.tar.bz2 platform_system_ashmemd-39d57cb5cb3db0ce9078b98fd92d4b6dfb57fbe1.zip |
Merge "Reland 'Check /dev/binder access before calling defaultServiceManager()'" am: 4f42ac7989 am: d16c37d5a0
am: 3f5816670e
Change-Id: Ie8d2a72af579b43437a56e2371ce7fee41a95251
-rw-r--r-- | ashmemd_client.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ashmemd_client.cpp b/ashmemd_client.cpp index 3380209..04227ba 100644 --- a/ashmemd_client.cpp +++ b/ashmemd_client.cpp @@ -28,6 +28,11 @@ namespace android { namespace ashmemd { sp<IAshmemDeviceService> getAshmemService() { + // Calls to defaultServiceManager() crash the process if it doesn't have appropriate + // binder permissions. Check these permissions proactively. + if (access("/dev/binder", R_OK | W_OK) != 0) { + return nullptr; + } sp<IServiceManager> sm = android::defaultServiceManager(); sp<IBinder> binder = sm->checkService(String16("ashmem_device_service")); return interface_cast<IAshmemDeviceService>(binder); |