Fix mmap usage.
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>
Mon, 22 Oct 2012 13:17:19 +0000 (15:17 +0200)
committerLisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Tue, 5 Feb 2013 21:52:29 +0000 (21:52 +0000)
Add missing MAP_NORESERVE and fix error checking.

Special thanks to Olivier JG for debugging the issue.

Task-number: QTBUG-27322
Change-Id: Ia9f4aa80415f0127318714912b524131a5b0f18a

Gbp-Pq: Name add_missing_map_noreserve.patch

src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp

index 16d0fb1e8c70f3d26560d915806d2d2220384e3c..e1237e41767973859823165d0ceb13cdd4fba2f1 100644 (file)
@@ -305,8 +305,8 @@ public:
         randomLocation += (1 << 24);
         randomLocation <<= 21;
 #endif
-        m_base = mmap(reinterpret_cast<void*>(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0);
-        if (!m_base)
+        m_base = mmap(reinterpret_cast<void*>(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0);
+        if (m_base == MAP_FAILED)
             CRASH();
 
         // For simplicity, we keep all memory in m_freeList in a 'released' state.