forked from aosp-mirror/platform_system_core
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsparse_fuzzer.cpp
More file actions
29 lines (25 loc) · 738 Bytes
/
Copy pathsparse_fuzzer.cpp
File metadata and controls
29 lines (25 loc) · 738 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "include/sparse/sparse.h"
static volatile int count;
int WriteCallback(void* priv __attribute__((__unused__)), const void* data, size_t len) {
if (!data) {
return 0;
}
if (len == 0) {
return 0;
}
const char* p = (const char*)data;
// Just to make sure the data is accessible
// We only check the head and tail to save time
count += *p;
count += *(p+len-1);
return 0;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
struct sparse_file* file = sparse_file_import_buf((char*)data, size, true, false);
if (!file) {
return 0;
}
int32_t result = sparse_file_callback(file, false, false, WriteCallback, nullptr);
sparse_file_destroy(file);
return result;
}