From c7d81087878b767ef84b5d8170585652bc6efa5c Mon Sep 17 00:00:00 2001 From: oupson Date: Thu, 6 Oct 2022 11:12:30 +0200 Subject: [PATCH] Fix get_real_size --- rustcryptfs-linux/src/encrypted_filesystem.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rustcryptfs-linux/src/encrypted_filesystem.rs b/rustcryptfs-linux/src/encrypted_filesystem.rs index c86ce9e..d0cca84 100644 --- a/rustcryptfs-linux/src/encrypted_filesystem.rs +++ b/rustcryptfs-linux/src/encrypted_filesystem.rs @@ -60,9 +60,14 @@ impl EncryptedFs { } fn get_real_size(size: u64) -> u64 { - let x = ((size as f64 - 48.0) / 4128.0).floor() as u64; + if size == 0 { + 0 + } else { + let x = (size - 50) / 4128; - x * 4096 + size - 48 - x * 4096 + let y = (size - 50) - x * 4128; + x * 4096 + y + } } fn get_file_type(file_type: StdFileType) -> FileType {