From 5569faf05abd550b81649f3961c743448e708825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 7 May 2010 06:57:11 +0100 Subject: [PATCH] mapi: Avoid Data Execution Prevention on windows. --- src/mapi/glapi/glapitemp.h | 2 +- src/mapi/mapi/u_execmem.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/mapi/glapi/glapitemp.h b/src/mapi/glapi/glapitemp.h index 3ed337f8254..92835b9afc2 100644 --- a/src/mapi/glapi/glapitemp.h +++ b/src/mapi/glapi/glapitemp.h @@ -27,7 +27,7 @@ */ -# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) && defined(__ELF__) +# if (defined(__GNUC__) && !defined(__MINGW32__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) && defined(__ELF__) # define HIDDEN __attribute__((visibility("hidden"))) # else # define HIDDEN diff --git a/src/mapi/mapi/u_execmem.c b/src/mapi/mapi/u_execmem.c index 0e0f8aa316f..fae2c75c0ec 100644 --- a/src/mapi/mapi/u_execmem.c +++ b/src/mapi/mapi/u_execmem.c @@ -110,6 +110,22 @@ bail: } +#elif defined(_WIN32) + +#include + + +/* + * Avoid Data Execution Prevention. + */ + +void * +u_execmem_alloc(unsigned int size) +{ + return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +} + + #else void *