8 static void fuzz_blobmsg_parse(const uint8_t *data, size_t size)
17 static const struct blobmsg_policy foo_policy[] = {
20 .type = BLOBMSG_TYPE_STRING,
24 .type = BLOBMSG_TYPE_ARRAY,
28 .type = BLOBMSG_TYPE_TABLE,
32 struct blob_attr *tb[__FOO_MAX];
34 blobmsg_parse(foo_policy, __FOO_MAX, tb, (uint8_t *)data, size);
35 blobmsg_parse_array(foo_policy, __FOO_MAX, tb, (uint8_t *)data, size);
38 static void fuzz_blob_parse(const uint8_t *data, size_t size)
53 static const struct blob_attr_info foo_policy[__FOO_ATTR_MAX] = {
54 [FOO_ATTR_NESTED] = { .type = BLOB_ATTR_NESTED },
55 [FOO_ATTR_BINARY] = { .type = BLOB_ATTR_BINARY },
56 [FOO_ATTR_STRING] = { .type = BLOB_ATTR_STRING },
57 [FOO_ATTR_INT8] = { .type = BLOB_ATTR_INT8 },
58 [FOO_ATTR_INT16] = { .type = BLOB_ATTR_INT16 },
59 [FOO_ATTR_INT32] = { .type = BLOB_ATTR_INT32 },
60 [FOO_ATTR_INT64] = { .type = BLOB_ATTR_INT64 },
61 [FOO_ATTR_DOUBLE] = { .type = BLOB_ATTR_DOUBLE },
64 struct blob_attr *foo[__FOO_ATTR_MAX];
65 struct blob_attr *buf = (struct blob_attr *)data;
67 blob_parse(buf, foo, foo_policy, __FOO_ATTR_MAX);
70 int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
72 fuzz_blob_parse(data, size);
73 fuzz_blobmsg_parse(data, size);