Index: src/trusted/service_runtime/sel_main.c |
=================================================================== |
--- src/trusted/service_runtime/sel_main.c (revision 3470) |
+++ src/trusted/service_runtime/sel_main.c (working copy) |
@@ -28,6 +28,7 @@ |
#include "native_client/src/shared/platform/nacl_sync_checked.h" |
#include "native_client/src/shared/srpc/nacl_srpc.h" |
+#include "native_client/src/trusted/platform_qualify/nacl_dep_qualify.h" |
#include "native_client/src/trusted/platform_qualify/nacl_os_qualify.h" |
#ifdef NACL_BREAKPAD |
@@ -450,6 +451,17 @@ |
NaClErrorString(errcode)); |
} |
+ /* |
+ * Ensure this platform has Data Execution Prevention enabled. |
+ */ |
+ if (!skip_qualification && !NaClCheckDEP()) { |
+ errcode = LOAD_DEP_UNSUPPORTED; |
+ nap->module_load_status = errcode; |
+ fprintf(stderr, "Error while loading \"%s\": %s\n", |
+ nacl_file, |
+ NaClErrorString(errcode)); |
+ } |
+ |
if (LOAD_OK == errcode) { |
errcode = NaClAppLoadFile((struct Gio *) &gf, nap, check_abi); |
if (LOAD_OK != errcode) { |