Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
json
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
json
Commits
c3c5c03e
Commit
c3c5c03e
authored
Jun 10, 2020
by
Tanuj Garg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added fuzzing with different values to default argument in to_ubjson method
parent
27f5a6e8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
3 deletions
+19
-3
test/src/fuzzer-parse_ubjson.cpp
test/src/fuzzer-parse_ubjson.cpp
+19
-3
No files found.
test/src/fuzzer-parse_ubjson.cpp
View file @
c3c5c03e
...
...
@@ -11,6 +11,12 @@ array data, it performs the following steps:
- vec = to_ubjson(j1)
- j2 = from_ubjson(vec)
- assert(j1 == j2)
- vec2 = to_ubjson(j1, use_size = true, use_type = false)
- j3 = from_ubjson(vec2)
- assert(j1 == j3)
- vec3 = to_ubjson(j1, use_size = true, use_type = true)
- j4 = from_ubjson(vec3)
- assert(j1 == j4)
The provided function `LLVMFuzzerTestOneInput` can be used in different fuzzer
drivers.
...
...
@@ -35,14 +41,24 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
try
{
// step 2: round trip
std
::
vector
<
uint8_t
>
vec2
=
json
::
to_ubjson
(
j1
);
// step 2.1: round trip without adding size annotations to container types
std
::
vector
<
uint8_t
>
vec2
=
json
::
to_ubjson
(
j1
,
false
,
false
);
// step 2.2: round trip with adding size annotations but without adding type annonations to container types
std
::
vector
<
uint8_t
>
vec3
=
json
::
to_ubjson
(
j1
,
true
,
false
);
// step 2.3: round trip with adding size as well as type annotations to container types
std
::
vector
<
uint8_t
>
vec4
=
json
::
to_ubjson
(
j1
,
true
,
true
);
// parse serialization
json
j2
=
json
::
from_ubjson
(
vec2
);
json
j3
=
json
::
from_ubjson
(
vec3
);
json
j4
=
json
::
from_ubjson
(
vec4
);
// serializations must match
assert
(
json
::
to_ubjson
(
j2
)
==
vec2
);
assert
(
json
::
to_ubjson
(
j2
,
false
,
false
)
==
vec2
);
assert
(
json
::
to_ubjson
(
j3
,
true
,
false
)
==
vec3
);
assert
(
json
::
to_ubjson
(
j4
,
true
,
true
)
==
vec4
);
}
catch
(
const
json
::
parse_error
&
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment