From 6aa906b5476f3ec357b856c1293b2f970c8aa0aa Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 12 Nov 2019 12:54:06 +0100 Subject: [PATCH] src/backup/catalog.rs - CatalogReader: verify magic number --- src/backup/catalog.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backup/catalog.rs b/src/backup/catalog.rs index 84b0d285..37bbcc41 100644 --- a/src/backup/catalog.rs +++ b/src/backup/catalog.rs @@ -396,7 +396,12 @@ impl CatalogReader { /// Get the root DirEntry pub fn root(&mut self) -> Result { // Root dir is special - // mixme: verify magic + self.reader.seek(SeekFrom::Start(0))?; + let mut magic = [ 0u8; 8]; + self.reader.read_exact(&mut magic)?; + if magic != PROXMOX_CATALOG_FILE_MAGIC_1_0 { + bail!("got unexpected magic number for catalog"); + } self.reader.seek(SeekFrom::End(-8))?; let start = unsafe { self.reader.read_le_value::()? }; Ok(DirEntry { name: b"".to_vec(), attr: DirEntryAttribute::Directory { start } })