[avb][fuzzer] Fuzz pvmfw payload_verify for kernel without footer
Bug: 260574387 Test: Run fuzzer. Change-Id: Ie2ce843000976829f3f7783cca956cf5a4089bb7
This commit is contained in:
parent
36bb7854fe
commit
1ba4f8a839
|
@ -0,0 +1,34 @@
|
||||||
|
// Copyright 2023, The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package {
|
||||||
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||||
|
}
|
||||||
|
|
||||||
|
rust_fuzz {
|
||||||
|
name: "avb_kernel_without_footer_verify_fuzzer",
|
||||||
|
srcs: ["without_footer_verify_fuzzer.rs"],
|
||||||
|
rustlibs: [
|
||||||
|
"libpvmfw_avb_nostd",
|
||||||
|
],
|
||||||
|
fuzz_config: {
|
||||||
|
cc: [
|
||||||
|
"android-kvm@google.com",
|
||||||
|
],
|
||||||
|
fuzz_on_haiku_device: true,
|
||||||
|
fuzz_on_haiku_host: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(b/260574387): Add avb_kernel_with_footer_verify_fuzzer
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright 2023, The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#![allow(missing_docs)]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
use libfuzzer_sys::fuzz_target;
|
||||||
|
use pvmfw_avb::verify_payload;
|
||||||
|
|
||||||
|
fuzz_target!(|kernel: &[u8]| {
|
||||||
|
// This fuzzer is mostly supposed to catch the memory corruption in
|
||||||
|
// AVB footer parsing. It is unlikely that the randomly generated
|
||||||
|
// kernel can pass the kernel verification, so the value of `initrd`
|
||||||
|
// is not so important as we won't reach initrd verification with
|
||||||
|
// this fuzzer.
|
||||||
|
let _ = verify_payload(kernel, /*initrd=*/ None, &[0u8; 64]);
|
||||||
|
});
|
Loading…
Reference in New Issue