Mercurial > pub > dyncall > dyncall
comparison dyncallback/dyncall_alloc_wx_win32.c @ 202:030fbb70aa1b
- changed allocwx code:
* to introduce a call allowing to switch the written page to be executable (e.g. using mprotect)
* changed mmap based code so page is always W^X
author | Tassilo Philipp |
---|---|
date | Mon, 20 Mar 2017 23:12:58 +0100 |
parents | 3e629dc19168 |
children | f5577f6bf97a |
comparison
equal
deleted
inserted
replaced
201:136409adbdd1 | 202:030fbb70aa1b |
---|---|
26 | 26 |
27 #include "dyncall_alloc_wx.h" | 27 #include "dyncall_alloc_wx.h" |
28 #include <windows.h> | 28 #include <windows.h> |
29 #include <assert.h> | 29 #include <assert.h> |
30 | 30 |
31 int dcAllocWX(size_t size, void** ptr) | 31 DCerror dcAllocWX(size_t size, void** ptr) |
32 { | 32 { |
33 LPVOID p = VirtualAlloc(0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); | 33 LPVOID p = VirtualAlloc(0, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); |
34 if (p == NULL) return -1; | 34 if (p == NULL) return -1; |
35 *ptr = p; | 35 *ptr = p; |
36 return 0; | |
37 } | |
38 | |
39 DCerror dcInitExecWX(void* p, size_t size) | |
40 { | |
36 return 0; | 41 return 0; |
37 } | 42 } |
38 | 43 |
39 void dcFreeWX(void* p, size_t size) | 44 void dcFreeWX(void* p, size_t size) |
40 { | 45 { |