瀏覽代碼

修复内存空间未初始化的问题

fslongjin 3 年之前
父節點
當前提交
dee231d9b8
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      kernel/mm/mm.c

+ 2 - 0
kernel/mm/mm.c

@@ -634,6 +634,7 @@ void mm_map_proc_page_table(ul *proc_page_table_addr, bool is_phys, ul virt_addr
     if (*tmp == 0)
     if (*tmp == 0)
     {
     {
         ul *virt_addr = kmalloc(PAGE_4K_SIZE, 0);
         ul *virt_addr = kmalloc(PAGE_4K_SIZE, 0);
+        memset(virt_addr, 0, PAGE_4K_SIZE);
         set_pml4t(tmp, mk_pml4t(virt_2_phys(virt_addr), (user ? PAGE_USER_PGT : PAGE_KERNEL_PGT)));
         set_pml4t(tmp, mk_pml4t(virt_2_phys(virt_addr), (user ? PAGE_USER_PGT : PAGE_KERNEL_PGT)));
     }
     }
     kdebug("*tmp = %#018lx", *tmp);
     kdebug("*tmp = %#018lx", *tmp);
@@ -646,6 +647,7 @@ void mm_map_proc_page_table(ul *proc_page_table_addr, bool is_phys, ul virt_addr
     if (*tmp == 0)
     if (*tmp == 0)
     {
     {
         ul *virt_addr = kmalloc(PAGE_4K_SIZE, 0);
         ul *virt_addr = kmalloc(PAGE_4K_SIZE, 0);
+        memset(virt_addr, 0, PAGE_4K_SIZE);
         set_pdpt(tmp, mk_pdpt(virt_2_phys(virt_addr), (user ? PAGE_USER_DIR : PAGE_KERNEL_DIR)));
         set_pdpt(tmp, mk_pdpt(virt_2_phys(virt_addr), (user ? PAGE_USER_DIR : PAGE_KERNEL_DIR)));
     }
     }