diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-01-11 11:33:26 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2021-01-12 10:09:53 +0100 |
commit | 131e2c81d40e3d324c62e113749a08e7993d008f (patch) | |
tree | b8bb24c8a189cba4ef4a46d5eb5c810b7905f51c /src/3rdparty/masm/yarr | |
parent | 8dbe5b2be4e65e96013651f1ffee1cc26dd1ead1 (diff) |
masm: Add error handling for failed mprotect()
If we cannot mprotect() we have to abort the JIT compilation. Delete
RepatchBuffer.h as it is unfixable in that regard. Luckily we don't use
it.
Task-number: QTBUG-89659
Pick-to: 5.15
Change-Id: Ic5ddbdf51b471db4ddeaa75aab48b24c1f7ced56
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src/3rdparty/masm/yarr')
-rw-r--r-- | src/3rdparty/masm/yarr/YarrJIT.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/3rdparty/masm/yarr/YarrJIT.cpp b/src/3rdparty/masm/yarr/YarrJIT.cpp index 1c8138c66e..28ca8e2629 100644 --- a/src/3rdparty/masm/yarr/YarrJIT.cpp +++ b/src/3rdparty/masm/yarr/YarrJIT.cpp @@ -3928,7 +3928,8 @@ public: } QV4::generateFunctionTable(nullptr, &codeRef); - linkBuffer.makeExecutable(); + if (Q_UNLIKELY(!linkBuffer.makeExecutable())) + m_failureReason = JITFailureReason::ExecutableMemoryAllocationFailure; if (m_failureReason) codeBlock.setFallBackWithFailureReason(*m_failureReason); |