mmap #8
@ -273,7 +273,7 @@ int uAddrSpaceHeapCheckNAlloc(struct uAddrSpace *as, vaddr_t addr)
|
|||||||
struct uAddrVirtualReg *newReg;
|
struct uAddrVirtualReg *newReg;
|
||||||
int right = PAGING_MEM_USER | PAGING_MEM_WRITE | PAGING_MEM_READ;
|
int right = PAGING_MEM_USER | PAGING_MEM_WRITE | PAGING_MEM_READ;
|
||||||
|
|
||||||
pr_devel("Checking 0x%lx inside 0x%lx and 0x%lx\n", addr, as->heapStart,
|
pr_devel("Heap check: 0x%lx inside 0x%lx and 0x%lx\n", addr, as->heapStart,
|
||||||
as->heapStart + as->heapSize);
|
as->heapStart + as->heapSize);
|
||||||
|
|
||||||
if (addr < as->heapStart || addr >= as->heapStart + as->heapSize) {
|
if (addr < as->heapStart || addr >= as->heapStart + as->heapSize) {
|
||||||
@ -395,6 +395,8 @@ int uAddrSpaceSolvePageFault(struct uAddrSpace *as, vaddr_t faultAddr, int isWri
|
|||||||
if (reg == NULL)
|
if (reg == NULL)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
|
pr_devel("Virtual Region for pageflt found\n");
|
||||||
|
|
||||||
if (isWriteAccess && !(reg->right & PAGING_MEM_WRITE))
|
if (isWriteAccess && !(reg->right & PAGING_MEM_WRITE))
|
||||||
return -EACCES;
|
return -EACCES;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user