diff options
| author | Ben Kimock <kimockb@gmail.com> | 2024-05-03 21:17:57 -0400 |
|---|---|---|
| committer | Ben Kimock <kimockb@gmail.com> | 2024-05-21 20:12:29 -0400 |
| commit | 95150d72465db491f4b04b73545e106462bd003b (patch) | |
| tree | 99ebc1f9f9f08d0ff0065ac0a05fd60bbfb74eb2 /compiler/rustc_codegen_ssa/src | |
| parent | 39e02f1bd1e53d009da382654139f7c0639172a8 (diff) | |
| download | rust-95150d72465db491f4b04b73545e106462bd003b.tar.gz rust-95150d72465db491f4b04b73545e106462bd003b.zip | |
Add a footer in FileEncoder and check for it in MemDecoder
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/lib.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_ssa/src/lib.rs b/compiler/rustc_codegen_ssa/src/lib.rs index 4eb24d71009..9bf8fde55fc 100644 --- a/compiler/rustc_codegen_ssa/src/lib.rs +++ b/compiler/rustc_codegen_ssa/src/lib.rs @@ -195,6 +195,7 @@ pub enum CodegenErrors { EmptyVersionNumber, EncodingVersionMismatch { version_array: String, rlink_version: u32 }, RustcVersionMismatch { rustc_version: String }, + CorruptFile, } pub fn provide(providers: &mut Providers) { @@ -265,7 +266,9 @@ impl CodegenResults { }); } - let mut decoder = MemDecoder::new(&data[4..], 0); + let Some(mut decoder) = MemDecoder::new(&data[4..], 0) else { + return Err(CodegenErrors::CorruptFile); + }; let rustc_version = decoder.read_str(); if rustc_version != sess.cfg_version { return Err(CodegenErrors::RustcVersionMismatch { |
