Index: /trunk/src/VBox/Runtime/generic/memsafer-generic.cpp
===================================================================
--- /trunk/src/VBox/Runtime/generic/memsafer-generic.cpp	(revision 52032)
+++ /trunk/src/VBox/Runtime/generic/memsafer-generic.cpp	(revision 52033)
@@ -116,6 +116,6 @@
  *
  * @note: The allocation will have an extra page allocated before and after the
- *        user area with all access rights removed to prevent heartbleed like
- *        attacks.
+ *        user area with all access rights removed if the host supports that to
+ *        prevent heartbleed like attacks.
  */
 static int rtMemSaferSupR3Alloc(void **ppvNew, size_t cb)
@@ -132,10 +132,18 @@
     if (RT_SUCCESS(rc))
     {
-        /* Change the memory protection of the pages guarding the allocation. */
+        /*
+         * Change the memory protection of the pages guarding the allocation.
+         * Some hosts don't support changing the page protection, ignore these
+         * errors.
+         */
         rc = SUPR3PageProtect(pvNew, NIL_RTR0PTR, 0, PAGE_SIZE, RTMEM_PROT_NONE);
-        if (RT_SUCCESS(rc))
+        if (RT_SUCCESS(rc) || rc == VERR_NOT_SUPPORTED)
         {
-            Assert(cb == (size_t)((uint32_t)(PAGE_SIZE + cbUser)));
-            rc = SUPR3PageProtect(pvNew, NIL_RTR0PTR, PAGE_SIZE + (uint32_t)cbUser, PAGE_SIZE, RTMEM_PROT_NONE);
+            Assert(PAGE_SIZE + cbUser == (size_t)((uint32_t)(PAGE_SIZE + cbUser)));
+            if (rc == VERR_NOT_SUPPORTED)
+                rc = VINF_SUCCESS;
+            else
+                rc = SUPR3PageProtect(pvNew, NIL_RTR0PTR, PAGE_SIZE + (uint32_t)cbUser, PAGE_SIZE, RTMEM_PROT_NONE);
+
             if (RT_SUCCESS(rc))
             {
