Use rust::String::c_str to ensure nil termination

This commit is contained in:
topjohnwu 2025-05-09 16:02:39 -07:00
parent e3e4202954
commit 9684a35cab
2 changed files with 7 additions and 7 deletions

View File

@ -98,9 +98,9 @@ pub mod ffi {
fn patch_ro_root(self: &mut MagiskInit);
// Used in C++
unsafe fn setup_tmp(self: &MagiskInit, path: *const c_char);
unsafe fn setup_tmp(self: &mut MagiskInit, path: *const c_char);
fn collect_devices(self: &MagiskInit);
fn mount_preinit_dir(self: &MagiskInit);
fn mount_preinit_dir(self: &mut MagiskInit);
unsafe fn find_block(self: &MagiskInit, partname: *const c_char) -> u64;
unsafe fn patch_fissiond(self: &mut MagiskInit, tmp_path: *const c_char);
}

View File

@ -103,11 +103,11 @@ uint64_t MagiskInit::find_block(const char *partname) const noexcept {
return 0;
}
void MagiskInit::mount_preinit_dir() const noexcept {
void MagiskInit::mount_preinit_dir() noexcept {
if (preinit_dev.empty()) return;
auto dev = find_block(preinit_dev.data());
auto dev = find_block(preinit_dev.c_str());
if (dev == 0) {
LOGE("Cannot find preinit %s, abort!\n", preinit_dev.data());
LOGE("Cannot find preinit %s, abort!\n", preinit_dev.c_str());
return;
}
xmknod(PREINITDEV, S_IFBLK | 0600, dev);
@ -138,7 +138,7 @@ void MagiskInit::mount_preinit_dir() const noexcept {
}
xumount2(MIRRDIR, MNT_DETACH);
} else {
PLOGE("Failed to mount preinit %s\n", preinit_dev.data());
PLOGE("Failed to mount preinit %s\n", preinit_dev.c_str());
unlink(PREINITDEV);
}
}
@ -210,7 +210,7 @@ mount_root:
return is_two_stage;
}
void MagiskInit::setup_tmp(const char *path) const noexcept {
void MagiskInit::setup_tmp(const char *path) noexcept {
LOGD("Setup Magisk tmp at %s\n", path);
chdir("/data");