From 7cba9db9cdcdafe221d0481c52316a8653f577a1 Mon Sep 17 00:00:00 2001 From: Daniel Erat Date: Fri, 16 Oct 2015 09:04:33 -0600 Subject: libbinderwrapper: Add GetCallingUid() and GetCallingPid(). Add methods to BinderWrapper for getting the caller's UID and PID while in a transaction. Bug: 24988639 Change-Id: Ibd711fc6b3d83623d4bb1060838c65aaef30d76e --- libbinderwrapper/real_binder_wrapper.cc | 9 +++++++++ libbinderwrapper/real_binder_wrapper.h | 2 ++ libbinderwrapper/stub_binder_wrapper.cc | 12 +++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) (limited to 'libbinderwrapper') diff --git a/libbinderwrapper/real_binder_wrapper.cc b/libbinderwrapper/real_binder_wrapper.cc index adff19bed..1c518226d 100644 --- a/libbinderwrapper/real_binder_wrapper.cc +++ b/libbinderwrapper/real_binder_wrapper.cc @@ -19,6 +19,7 @@ #include #include #include +#include #include namespace android { @@ -111,4 +112,12 @@ bool RealBinderWrapper::UnregisterForDeathNotifications( return true; } +uid_t RealBinderWrapper::GetCallingUid() { + return IPCThreadState::self()->getCallingUid(); +} + +pid_t RealBinderWrapper::GetCallingPid() { + return IPCThreadState::self()->getCallingPid(); +} + } // namespace android diff --git a/libbinderwrapper/real_binder_wrapper.h b/libbinderwrapper/real_binder_wrapper.h index 8e281f2f8..ea0837171 100644 --- a/libbinderwrapper/real_binder_wrapper.h +++ b/libbinderwrapper/real_binder_wrapper.h @@ -38,6 +38,8 @@ class RealBinderWrapper : public BinderWrapper { bool RegisterForDeathNotifications(const sp& binder, const base::Closure& callback) override; bool UnregisterForDeathNotifications(const sp& binder) override; + uid_t GetCallingUid() override; + pid_t GetCallingPid() override; private: class DeathRecipient; diff --git a/libbinderwrapper/stub_binder_wrapper.cc b/libbinderwrapper/stub_binder_wrapper.cc index 1d2468101..87c6ab793 100644 --- a/libbinderwrapper/stub_binder_wrapper.cc +++ b/libbinderwrapper/stub_binder_wrapper.cc @@ -22,7 +22,9 @@ namespace android { -StubBinderWrapper::StubBinderWrapper() = default; +StubBinderWrapper::StubBinderWrapper() + : calling_uid_(-1), + calling_pid_(-1) {} StubBinderWrapper::~StubBinderWrapper() = default; @@ -73,4 +75,12 @@ bool StubBinderWrapper::UnregisterForDeathNotifications( return true; } +uid_t StubBinderWrapper::GetCallingUid() { + return calling_uid_; +} + +pid_t StubBinderWrapper::GetCallingPid() { + return calling_pid_; +} + } // namespace android -- cgit v1.2.3