diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-04-16 10:35:54 +0200 |
---|---|---|
committer | Aapo Keskimolo <aapo.keskimolo@qt.io> | 2018-04-16 17:52:15 +0000 |
commit | 2e6196f727cbc5c23be8d264e160933b283cb459 (patch) | |
tree | 70127f4f337fc5ee3a120294a2ae38db4dc67ced | |
parent | 4909773f8162de49830d65e886747c11fff72934 (diff) |
Add a null pointer check
The data pointer in ArrayBuffer can be null, if the
constructor tried to allocate an object with an
invalid length;
Change-Id: I4a37dfa2c749db02982c69ca065c2e7ce9902a93
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qml/jsruntime/qv4arraybuffer.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4arraybuffer.cpp b/src/qml/jsruntime/qv4arraybuffer.cpp index c4eddb6b2a..59a2b9d913 100644 --- a/src/qml/jsruntime/qv4arraybuffer.cpp +++ b/src/qml/jsruntime/qv4arraybuffer.cpp @@ -96,7 +96,6 @@ void Heap::ArrayBuffer::init(size_t length) Object::init(); data = QTypedArrayData<char>::allocate(length + 1); if (!data) { - data = nullptr; internalClass->engine->throwRangeError(QStringLiteral("ArrayBuffer: out of memory")); return; } @@ -113,7 +112,7 @@ void Heap::ArrayBuffer::init(const QByteArray& array) void Heap::ArrayBuffer::destroy() { - if (!data->ref.deref()) + if (data && !data->ref.deref()) QTypedArrayData<char>::deallocate(data); Object::destroy(); } |