From 4837f2101c21371ccc63c8dff7110b79621f2a9a Mon Sep 17 00:00:00 2001 From: tiann Date: Tue, 21 Feb 2023 13:06:37 +0800 Subject: [PATCH] ksud: fix incorrect umask --- userspace/ksud/src/event.rs | 8 +++++++- userspace/ksud/src/utils.rs | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/userspace/ksud/src/event.rs b/userspace/ksud/src/event.rs index cb9377b8..ba8e0394 100644 --- a/userspace/ksud/src/event.rs +++ b/userspace/ksud/src/event.rs @@ -4,7 +4,7 @@ use std::{collections::HashMap, path::Path}; use crate::{ assets, defs, mount, - utils::{ensure_clean_dir, ensure_dir_exists}, + utils::{ensure_clean_dir, ensure_dir_exists, self}, }; fn mount_partition(partition: &str, lowerdir: &mut Vec) -> Result<()> { @@ -89,6 +89,9 @@ pub fn mount_systemlessly(module_dir: &str) -> Result<()> { pub fn on_post_data_fs() -> Result<()> { crate::ksu::report_post_fs_data(); + + utils::umask(0); + let module_update_img = defs::MODULE_UPDATE_IMG; let module_img = defs::MODULE_IMG; let module_dir = defs::MODULE_DIR; @@ -173,6 +176,9 @@ pub fn on_post_data_fs() -> Result<()> { } pub fn on_services() -> Result<()> { + + utils::umask(0); + // check safe mode first. if crate::utils::is_safe_mode() { warn!("safe mode, skip module service scripts"); diff --git a/userspace/ksud/src/utils.rs b/userspace/ksud/src/utils.rs index e72bd95b..e8568c86 100644 --- a/userspace/ksud/src/utils.rs +++ b/userspace/ksud/src/utils.rs @@ -115,3 +115,13 @@ pub fn unshare_mnt_ns() -> Result<()> { ensure!(ret == 0, "unshare mnt ns failed"); Ok(()) } + +#[cfg(any(target_os = "linux", target_os = "android"))] +pub fn umask(mask: u32) { + unsafe { libc::umask(mask) }; +} + +#[cfg(not(any(target_os = "linux", target_os = "android")))] +pub fn umask(_mask: u32) { + unimplemented!("umask is not supported on this platform") +} \ No newline at end of file