From 564148498e394036bd870743e4f885e2e9b28325 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Mon, 29 Aug 2022 09:31:58 -0600 Subject: [PATCH] Copy redoxfs password to page aligned space --- src/main.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 8135ad8..af88b22 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,6 +22,7 @@ use core::{ cmp, fmt::{self, Write}, mem, + ptr, slice, str, }; @@ -488,10 +489,11 @@ fn main< } writeln!(w).unwrap(); if let Some(password) = password_opt { - //TODO: copy to reserved page - writeln!(w, "REDOXFS_PASSWORD_ADDR={:016x}", password.as_ptr() as usize).unwrap(); - writeln!(w, "REDOXFS_PASSWORD_SIZE={:016x}", password.len()).unwrap(); - mem::forget(password); + let password_size = password.len(); + let password_base = os.alloc_zeroed_page_aligned(password_size); + unsafe { ptr::copy(password.as_ptr(), password_base, password_size); } + writeln!(w, "REDOXFS_PASSWORD_ADDR={:016x}", password_base as usize).unwrap(); + writeln!(w, "REDOXFS_PASSWORD_SIZE={:016x}", password_size).unwrap(); } if let Some(mut mode) = mode_opt { -- GitLab