about summary refs log tree commit diff
path: root/src/librustdoc/scrape_examples.rs
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2024-05-03 21:17:57 -0400
committerBen Kimock <kimockb@gmail.com>2024-05-21 20:12:29 -0400
commit95150d72465db491f4b04b73545e106462bd003b (patch)
tree99ebc1f9f9f08d0ff0065ac0a05fd60bbfb74eb2 /src/librustdoc/scrape_examples.rs
parent39e02f1bd1e53d009da382654139f7c0639172a8 (diff)
downloadrust-95150d72465db491f4b04b73545e106462bd003b.tar.gz
rust-95150d72465db491f4b04b73545e106462bd003b.zip
Add a footer in FileEncoder and check for it in MemDecoder
Diffstat (limited to 'src/librustdoc/scrape_examples.rs')
-rw-r--r--src/librustdoc/scrape_examples.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustdoc/scrape_examples.rs b/src/librustdoc/scrape_examples.rs
index 9c9b386edda..0bf98886965 100644
--- a/src/librustdoc/scrape_examples.rs
+++ b/src/librustdoc/scrape_examples.rs
@@ -344,7 +344,9 @@ pub(crate) fn load_call_locations(
             Ok(bytes) => bytes,
             Err(e) => dcx.fatal(format!("failed to load examples: {e}")),
         };
-        let mut decoder = MemDecoder::new(&bytes, 0);
+        let Some(mut decoder) = MemDecoder::new(&bytes, 0) else {
+            dcx.fatal(format!("Corrupt metadata encountered in {path}"))
+        };
         let calls = AllCallLocations::decode(&mut decoder);
 
         for (function, fn_calls) in calls.into_iter() {