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
+6 -2
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 = {
let mut deserializer = serde_json::Deserializer::from_slice(&stdout);
deserializer.disable_recursion_limit();
serde::de::Deserialize::deserialize(&mut deserializer)
.map_err(|e| { .map_err(|e| {
anyhow::anyhow!( anyhow::anyhow!(
"failed to parse resolc JSON output: {e}\nstderr: {}", "failed to parse resolc JSON output: {e}\nstderr: {}",
String::from_utf8_lossy(&stderr) String::from_utf8_lossy(&stderr)
) )
}) })
.context("Failed to parse resolc standard JSON output")?; .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(),