diff options
| author | 2022-11-18 00:31:17 +0000 | |
|---|---|---|
| committer | 2022-11-18 01:08:23 +0000 | |
| commit | b09bee95faa14b0f7017ef93995dbffce44c96ef (patch) | |
| tree | e85f3080966c88957c2f07d7dacbce07e9a28702 | |
| parent | 84af7ae353ee400a090ba8772850d94889efda3d (diff) | |
set calling UID in fuzzService
Test: m servicemanager_fuzzer && out/host/linux-x86/fuzz/x86_64/servicemanager_fuzzer/servicemanager_fuzzer
Bug: 254864895
Change-Id: Iec63eb56ef3c3a39b24ff32a27893fdb4243e923
| -rw-r--r-- | libs/binder/tests/parcel_fuzzer/libbinder_driver.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/binder/tests/parcel_fuzzer/libbinder_driver.cpp b/libs/binder/tests/parcel_fuzzer/libbinder_driver.cpp index 9670aa30d8..86461c8670 100644 --- a/libs/binder/tests/parcel_fuzzer/libbinder_driver.cpp +++ b/libs/binder/tests/parcel_fuzzer/libbinder_driver.cpp @@ -18,6 +18,7 @@ #include <fuzzbinder/random_parcel.h> #include <android-base/logging.h> +#include <binder/IPCThreadState.h> #include <binder/ProcessState.h> namespace android { @@ -30,6 +31,11 @@ void fuzzService(const sp<IBinder>& binder, FuzzedDataProvider&& provider) { .extraFds = {}, }; + if (provider.ConsumeBool()) { + // set calling uid + IPCThreadState::self()->restoreCallingIdentity(provider.ConsumeIntegral<int64_t>()); + } + while (provider.remaining_bytes() > 0) { uint32_t code = provider.ConsumeIntegral<uint32_t>(); uint32_t flags = provider.ConsumeIntegral<uint32_t>(); |