From 472e31a9a152873f807fd58d2878d9c302484f07 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Mon, 16 Feb 2015 14:22:45 +0100 Subject: [PATCH] Fix exit_thread(2) passing unaligned sizes to UnmapMemory. --- kernel/thread.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/thread.cpp b/kernel/thread.cpp index e89c415a..dcc7ba7a 100644 --- a/kernel/thread.cpp +++ b/kernel/thread.cpp @@ -351,6 +351,7 @@ int sys_exit_thread(int requested_exit_code, extended.unmap_size ) { ScopedLock lock(&process->segment_lock); + extended.unmap_size = Page::AlignDown(extended.unmap_size); Memory::UnmapMemory(process, (uintptr_t) extended.unmap_from, extended.unmap_size); Memory::Flush(); @@ -362,6 +363,7 @@ int sys_exit_thread(int requested_exit_code, extended.tls_unmap_size ) { ScopedLock lock(&process->segment_lock); + extended.tls_unmap_size = Page::AlignDown(extended.tls_unmap_size); Memory::UnmapMemory(process, (uintptr_t) extended.tls_unmap_from, extended.tls_unmap_size); Memory::Flush();