am 8e274f34: Merge "make libacc run with execute stack protections enabled." into kraken
diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index 8f33b0b..73d2cdd 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -23,10 +23,7 @@
#include <cutils/hashmap.h>
-#if defined(__i386__)
#include <sys/mman.h>
-#endif
-
#if defined(__arm__)
#define DEFAULT_ARM_CODEGEN
@@ -230,7 +227,7 @@
void release() {
if (pProgramBase != 0) {
- free(pProgramBase);
+ munmap(pProgramBase, mSize);
pProgramBase = 0;
}
}
@@ -263,7 +260,9 @@
virtual void init(int size) {
release();
mSize = size;
- pProgramBase = (char*) calloc(1, size);
+ pProgramBase = (char*) mmap(NULL, size,
+ PROT_EXEC | PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
ind = pProgramBase;
}