summaryrefslogtreecommitdiff
path: root/include/llvm/System
diff options
context:
space:
mode:
authorTorok Edwin <edwintorok@gmail.com>2010-03-28 11:07:36 +0000
committerTorok Edwin <edwintorok@gmail.com>2010-03-28 11:07:36 +0000
commitb4bc96317a64b5f824ebef4b0c1c7024017f52c6 (patch)
tree620ca0a61d889e2c62b942a1e2d5d9002eda6a94 /include/llvm/System
parent2a22cdc716ea652d6c9ebdaae028b5c75ab2793a (diff)
downloadllvm-b4bc96317a64b5f824ebef4b0c1c7024017f52c6.tar.gz
llvm-b4bc96317a64b5f824ebef4b0c1c7024017f52c6.tar.bz2
llvm-b4bc96317a64b5f824ebef4b0c1c7024017f52c6.tar.xz
Fix use-of-uninitialized value when RWX memory can't be allocated (PR6701).
SELinux doesn't allow 'execmem', returning MAP_FAILED and 'Permission denied' for mmap or RWX memory. In this case AllocateRWX was returning a MemoryBlock with uninitialized fields, which sometimes caused crashes. This patch initializes MemoryBlock fields to 0, so that the RWX-failure check works. It doesn't fix the SELinux 'execmem' issues though (the JIT will not work when SELinux is in enforcing mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99762 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/System')
-rw-r--r--include/llvm/System/Memory.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/llvm/System/Memory.h b/include/llvm/System/Memory.h
index 69251dd2bf..01bcab1f00 100644
--- a/include/llvm/System/Memory.h
+++ b/include/llvm/System/Memory.h
@@ -27,7 +27,7 @@ namespace sys {
/// @brief Memory block abstraction.
class MemoryBlock {
public:
- MemoryBlock() { }
+ MemoryBlock() : Address(0), Size(0) { }
MemoryBlock(void *addr, size_t size) : Address(addr), Size(size) { }
void *base() const { return Address; }
size_t size() const { return Size; }