Merge "Adding fuzzers for StoragedService and StoragedPrivateService" am: 057cbf6379

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2559850

Change-Id: I701e4e70b6e2bc936367849c91d73b1fd8340b0c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Pawan Wagh 2023-04-25 23:11:55 +00:00 committed by Automerger Merge Worker
commit ba204e6274
5 changed files with 96 additions and 0 deletions

View file

@ -136,3 +136,27 @@ filegroup {
],
path: "binder",
}
cc_fuzz {
name: "storaged_service_fuzzer",
defaults: [
"storaged_defaults",
"service_fuzzer_defaults",
],
srcs: ["tests/fuzzers/storaged_service_fuzzer.cpp"],
static_libs: [
"libstoraged",
],
}
cc_fuzz {
name: "storaged_private_service_fuzzer",
defaults: [
"storaged_defaults",
"service_fuzzer_defaults",
],
srcs: ["tests/fuzzers/storaged_private_service_fuzzer.cpp"],
static_libs: [
"libstoraged",
],
}

View file

@ -28,6 +28,7 @@ using namespace std;
using namespace android::os;
using namespace android::os::storaged;
namespace android {
class StoragedService : public BinderService<StoragedService>, public BnStoraged {
private:
void dumpUidRecordsDebug(int fd, const vector<struct uid_record>& entries);
@ -53,4 +54,5 @@ public:
sp<IStoragedPrivate> get_storaged_pri_service();
} // namespace android
#endif /* _STORAGED_SERVICE_H_ */

View file

@ -38,6 +38,7 @@ using namespace android::base;
extern sp<storaged_t> storaged_sp;
namespace android {
status_t StoragedService::start() {
return BinderService<StoragedService>::publish();
}
@ -218,3 +219,4 @@ sp<IStoragedPrivate> get_storaged_pri_service() {
return interface_cast<IStoragedPrivate>(binder);
}
} // namespace android

View file

@ -0,0 +1,34 @@
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <fuzzbinder/libbinder_driver.h>
#include <storaged.h>
#include <storaged_service.h>
sp<storaged_t> storaged_sp;
extern "C" int LLVMFuzzerInitialize(int /**argc*/, char /****argv*/) {
storaged_sp = new storaged_t();
storaged_sp->init();
return 0;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
auto storagedPrivateService = new StoragedPrivateService();
fuzzService(storagedPrivateService, FuzzedDataProvider(data, size));
return 0;
}

View file

@ -0,0 +1,34 @@
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <fuzzbinder/libbinder_driver.h>
#include <storaged.h>
#include <storaged_service.h>
sp<storaged_t> storaged_sp;
extern "C" int LLVMFuzzerInitialize(int /**argc*/, char /****argv*/) {
storaged_sp = new storaged_t();
storaged_sp->init();
return 0;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
auto storagedService = new StoragedService();
fuzzService(storagedService, FuzzedDataProvider(data, size));
return 0;
}