From 81c44033d6d82b50969702d3dcde07cb71e066f6 Mon Sep 17 00:00:00 2001 From: Alex Crichton <alex@alexcrichton.com> Date: Thu, 25 Mar 2021 13:56:34 -0500 Subject: [PATCH] Disable module-linking in differential fuzzing (#2769) Currently this exposes a bug where modules broken by module linking cause failures in the fuzzer, but we want to fuzz those modules since module linking isn't enabled when generating these modules. --- crates/fuzzing/src/oracles.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/fuzzing/src/oracles.rs b/crates/fuzzing/src/oracles.rs index b30bb71a2c8b..3098005e062a 100644 --- a/crates/fuzzing/src/oracles.rs +++ b/crates/fuzzing/src/oracles.rs @@ -179,8 +179,14 @@ pub fn differential_execution( let wasm = module.to_bytes(); log_wasm(&wasm); - for config in &configs { - let engine = Engine::new(config).unwrap(); + for mut config in configs { + // Disable module linking since it isn't enabled by default for + // `wasm_smith::Module` but is enabled by default for our fuzz config. + // Since module linking is currently a breaking change this is required + // to accept modules that would otherwise be broken by module linking. + config.wasm_module_linking(false); + + let engine = Engine::new(&config).unwrap(); let store = Store::new(&engine); let module = Module::new(&engine, &wasm).unwrap();