diff options
author | forensicmatt <matthew.seyer@gmail.com> | 2017-06-23 22:39:16 +0300 |
---|---|---|
committer | forensicmatt <matthew.seyer@gmail.com> | 2017-06-23 22:39:16 +0300 |
commit | 6e9dc6991f57f2fd6cd8a3588b34c86ac76e8f40 (patch) | |
tree | f42f771b2561a843ef8f5634c969024eeb7e54e2 | |
parent | c4a9a22cd06f59ea5060481df99f5a7b09db8e26 (diff) |
MftHandler initialization fix
-rw-r--r-- | src/mft.rs | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -18,10 +18,6 @@ pub struct MftHandler { } impl MftHandler{ pub fn new(filename: &str) -> Result<MftHandler,MftError> { - 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){ |