Compare commits

...

1 Commits

Author SHA1 Message Date
Marian Radu 4a151a8555 Disable recursion limit when parsing resolc compilation output. 2026-01-09 13:28:33 +02:00
+12 -8
View File
@@ -208,14 +208,18 @@ impl SolidityCompiler for Resolc {
anyhow::bail!("Compilation failed with an error: {message}"); anyhow::bail!("Compilation failed with an error: {message}");
} }
let parsed = serde_json::from_slice::<SolcStandardJsonOutput>(&stdout) let parsed: SolcStandardJsonOutput = {
.map_err(|e| { let mut deserializer = serde_json::Deserializer::from_slice(&stdout);
anyhow::anyhow!( deserializer.disable_recursion_limit();
"failed to parse resolc JSON output: {e}\nstderr: {}", serde::de::Deserialize::deserialize(&mut deserializer)
String::from_utf8_lossy(&stderr) .map_err(|e| {
) anyhow::anyhow!(
}) "failed to parse resolc JSON output: {e}\nstderr: {}",
.context("Failed to parse resolc standard JSON output")?; String::from_utf8_lossy(&stderr)
)
})
.context("Failed to parse resolc standard JSON output")?
};
tracing::debug!( tracing::debug!(
output = %serde_json::to_string(&parsed).unwrap(), output = %serde_json::to_string(&parsed).unwrap(),