mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
修改一处常量定义 (#503)
* 修改一处常量定义 * 修复ELF加载程序对用户程序加载地址判断不正确的地方 --------- Co-authored-by: longjin <longjin@DragonOS.org>
This commit is contained in:
parent
9284987850
commit
5d549a76ab
@ -115,7 +115,9 @@ impl MemoryManagementArch for X86_64MMArch {
|
||||
/// 0xffff_8000_0000_0000
|
||||
const PHYS_OFFSET: usize = Self::PAGE_NEGATIVE_MASK + (Self::PAGE_ADDRESS_SIZE >> 1);
|
||||
|
||||
const USER_END_VADDR: VirtAddr = VirtAddr::new(0x0000_7eff_ffff_ffff);
|
||||
// 参考 https://code.dragonos.org.cn/xref/linux-6.1.9/arch/x86/include/asm/page_64_types.h#75
|
||||
const USER_END_VADDR: VirtAddr =
|
||||
VirtAddr::new((Self::PAGE_ADDRESS_SIZE >> 1) - Self::PAGE_SIZE);
|
||||
const USER_BRK_START: VirtAddr = VirtAddr::new(0x700000000000);
|
||||
const USER_STACK_START: VirtAddr = VirtAddr::new(0x6ffff0a00000);
|
||||
|
||||
|
@ -651,7 +651,8 @@ impl BinaryLoader for ElfLoader {
|
||||
// 如果程序段要加载的目标地址不在用户空间内,或者是其他不合法的情况,那么就报错
|
||||
if !p_vaddr.check_user()
|
||||
|| seg_to_load.p_filesz > seg_to_load.p_memsz
|
||||
|| seg_to_load.p_memsz > MMArch::USER_END_VADDR.data() as u64
|
||||
|| self.elf_page_align_up(p_vaddr + seg_to_load.p_memsz as usize)
|
||||
>= MMArch::USER_END_VADDR
|
||||
{
|
||||
// kdebug!("ERR: p_vaddr={p_vaddr:?}");
|
||||
return Err(ExecError::InvalidParemeter);
|
||||
|
Loading…
x
Reference in New Issue
Block a user