mirror of https://git.sr.ht/~stygianentity/bincode
Made the compat fuzzer ignore any LimitExceeded error (#515)
* Made the compat fuzzer ignore any LimitExceeded error * Switched from deserialize to deserialize_from Co-authored-by: Victor Koenders <git@trangar.com>
This commit is contained in:
parent
caa71b5d9f
commit
4d2e75e247
|
|
@ -4,9 +4,9 @@ version = 3
|
|||
|
||||
[[package]]
|
||||
name = "arbitrary"
|
||||
version = "1.0.3"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "510c76ecefdceada737ea728f4f9a84bd2e1ef29f1ba555e560940fe279954de"
|
||||
checksum = "c38b6b6b79f671c25e1a3e785b7b82d7562ffc9cd3efdc98627e5668a2472490"
|
||||
|
||||
[[package]]
|
||||
name = "bincode"
|
||||
|
|
@ -43,9 +43,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.72"
|
||||
version = "1.0.73"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
|
||||
checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
|
||||
|
||||
[[package]]
|
||||
name = "libfuzzer-sys"
|
||||
|
|
@ -84,18 +84,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.135"
|
||||
version = "1.0.136"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2cf9235533494ea2ddcdb794665461814781c53f19d87b76e571a1c35acbad2b"
|
||||
checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.135"
|
||||
version = "1.0.136"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8dcde03d87d4c973c04be249e7d8f0b35db1c848c487bd43032808e59dd8328d"
|
||||
checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
|
|||
|
|
@ -43,13 +43,25 @@ fuzz_target!(|data: &[u8]| {
|
|||
#[allow(deprecated)]
|
||||
let mut configv1 = bincodev1::config();
|
||||
configv1.limit(1024);
|
||||
let bincode_v1: Result<AllTypes, _> = configv1.deserialize(data);
|
||||
let bincode_v1: Result<AllTypes, _> = configv1.deserialize_from(data);
|
||||
let bincode_v2: Result<(AllTypes, _), _> = bincode::decode_from_slice(data, config);
|
||||
|
||||
if bincode_v1.as_ref().ok() != bincode_v2.as_ref().ok().map(|x| &x.0) {
|
||||
println!("Bytes: {:?}", data);
|
||||
println!("Bincode V1: {:?}", bincode_v1);
|
||||
println!("Bincode V2: {:?}", bincode_v2);
|
||||
panic!("failed equality check");
|
||||
match (&bincode_v1, &bincode_v2) {
|
||||
(Err(e), _) if e.to_string() == "the size limit has been reached" => {},
|
||||
(_, Err(bincode::error::DecodeError::LimitExceeded)) => {},
|
||||
(Ok(bincode_v1), Ok((bincode_v2, _))) if bincode_v1 != bincode_v2 => {
|
||||
println!("Bytes: {:?}", data);
|
||||
println!("Bincode V1: {:?}", bincode_v1);
|
||||
println!("Bincode V2: {:?}", bincode_v2);
|
||||
panic!("failed equality check");
|
||||
},
|
||||
(Ok(_), Err(_)) | (Err(_), Ok(_)) => {
|
||||
println!("Bytes: {:?}", data);
|
||||
println!("Bincode V1: {:?}", bincode_v1);
|
||||
println!("Bincode V2: {:?}", bincode_v2);
|
||||
panic!("failed equality check");
|
||||
}
|
||||
|
||||
_ => {}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue