Эх сурвалжийг харах

在加载内核的时候强制把内核空间清零,以避免潜在的错误 (#14)

LoGin 1 жил өмнө
parent
commit
773f7fd31f
1 өөрчлөгдсөн 7 нэмэгдсэн , 2 устгасан
  1. 7 2
      apps/elf.c

+ 7 - 2
apps/elf.c

@@ -338,10 +338,15 @@ static efi_status_t load_program(const void *payload_start, u64 payload_size,
 	status = efi_allocate_kernel_memory(phdr_start, phdrs_nr,
 					    &allocated_paddr, &allocated_size,
 					    &min_paddr, &max_paddr, &min_vaddr);
+
 	if (status != EFI_SUCCESS) {
 		efi_err("Failed to allocate kernel memory\n");
 		return status;
 	}
+
+	// 清空内存
+	memset((void *)allocated_paddr, 0, allocated_size);
+
 	const Elf64_Phdr *phdr = phdr_start;
 
 	for (u32 i = 0; i < phdrs_nr; ++i, ++phdr) {
@@ -383,8 +388,8 @@ static efi_status_t load_program(const void *payload_start, u64 payload_size,
 		       payload_start + file_offset, file_size);
 
 		// efi_debug(
-		// 	"segment loaded: paddr=%p, mem_size=%d, file_size=%d\n",
-		// 	paddr, mem_size, file_size);
+		// 	"segment loaded: file_offset: %p paddr=%p, mem_size=%p, file_size=%p\n",
+		// 	file_offset, paddr, mem_size, file_size);
 	}
 
 	*ret_program_mem_paddr = allocated_paddr;