blackbox fuzzing mechanisms
- support for HALs with nested sub-structures which have another set of
function pointers
- support 32-bit and 64-bit libraries
- refine the protocol between agent and runner (see vts multi-device
internals: spec part)
- camera hal (for bullhead) with instrumentation
- camera hal VTS spec files
- camera hal fuzz test case
- utils to coverage-guided whitebox fuzzing
- sample fuzz test case extension for whitebox fuzzing
Change-Id: I29fe5dd9540d380d13641189abb436e92d2d0b0c
diff --git a/sysfuzzer/common/component_loader/DllLoader.cpp b/sysfuzzer/common/component_loader/DllLoader.cpp
index 8dc3966..c4683b8 100644
--- a/sysfuzzer/common/component_loader/DllLoader.cpp
+++ b/sysfuzzer/common/component_loader/DllLoader.cpp
@@ -67,8 +67,11 @@
cerr << __FUNCTION__ << ": handle_ is NULL" << endl;
return NULL;
}
- cout << __FUNCTION__ << ":" << __LINE__ << endl;
- struct hw_module_t *hmi = (struct hw_module_t *) dlsym(
+ if (module_name) {
+ cout << __FUNCTION__ << ":" << __LINE__
+ << " module_name" << module_name << endl;
+ }
+ struct hw_module_t* hmi = (struct hw_module_t*) dlsym(
handle_, HAL_MODULE_INFO_SYM_AS_STR);
if (!hmi) {
cerr << __FUNCTION__ << ": " << HAL_MODULE_INFO_SYM_AS_STR
@@ -78,15 +81,18 @@
cout << __FUNCTION__ << ":" << __LINE__ << endl;
hmi->dso = handle_;
device_ = NULL;
+ cout << __FUNCTION__ << ": version " << hmi->module_api_version << endl;
+
int ret;
if (!module_name || strlen(module_name) == 0) {
- cout << __FUNCTION__ << ":" << __LINE__ << ": " << hmi->name << endl;
+ cout << __FUNCTION__ << ":" << __LINE__ << ": (default) " << hmi->name << endl;
ret = hmi->methods->open(hmi, hmi->name,
(struct hw_device_t**) &device_);
} else {
- cout << __FUNCTION__ << ":" << __LINE__ << ": module_name |" << module_name << "|" << endl;
- ret = hmi->methods->open(hmi, module_name,
- (struct hw_device_t**) &device_);
+ cout << __FUNCTION__ << ":" << __LINE__ << ": module_name |"
+ << module_name << "|" << endl;
+ ret = hmi->methods->open(
+ hmi, module_name, (struct hw_device_t**) &device_);
}
if (ret != 0) {
cout << "returns " << ret << " " << strerror(errno) << endl;
@@ -109,6 +115,7 @@
return func;
}
+
bool DllLoader::SancovResetCoverage() {
const char* error;
void (*func)();