From 6e9dc6991f57f2fd6cd8a3588b34c86ac76e8f40 Mon Sep 17 00:00:00 2001 From: forensicmatt Date: Fri, 23 Jun 2017 14:39:16 -0500 Subject: MftHandler initialization fix --- src/mft.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/mft.rs b/src/mft.rs index 888f8fb..634a96a 100644 --- a/src/mft.rs +++ b/src/mft.rs @@ -18,10 +18,6 @@ pub struct MftHandler { } impl MftHandler{ pub fn new(filename: &str) -> Result { - let mut mft_handler: MftHandler = unsafe { - mem::zeroed() - }; - let mut mft_fh = match File::open(filename) { Ok(usn_fh) => usn_fh, // Handle error here @@ -29,19 +25,25 @@ impl MftHandler{ }; // get file size - mft_handler._size = match mft_fh.seek(SeekFrom::End(0)){ + let size = match mft_fh.seek(SeekFrom::End(0)){ Err(e) => panic!("Error: {}",e), Ok(size) => size }; - mft_handler.filehandle = BufReader::with_capacity( + let filehandle = BufReader::with_capacity( 4096, mft_fh ); - mft_handler.set_entry_size(1024); - - Ok(mft_handler) + Ok( + MftHandler { + filehandle: filehandle, + path_enumerator: PathEnumerator::new(), + _entry_size: 1024, + _offset: 0, + _size: size + } + ) } pub fn set_entry_size(&mut self, entry_size: u32){ -- cgit v1.2.3