diff options
| -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>(); |