summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-29 10:28:49 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-29 13:25:28 +0000
commitcf3a94e300853fc3620d1ac73922232da14e5919 (patch)
treeb79c95e8b752e34306aa5724a6268232bad37fa4
parent543692ef8d0e17adecc36b07f36164f9bc93e85c (diff)
downloadqtwebengine-chromium-cf3a94e300853fc3620d1ac73922232da14e5919.tar.gz
[Backport] Merged: Reland "[wasm] Gracefully handle malformed custom sections in WebAssembly.Module.customSections()."
NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true BUG=chromium:789952 This is a reland of 163c1c82622f09f64fe7c3a1c93f81b566200493 Original change's description: > [wasm] Gracefully handle malformed custom sections in WebAssembly.Module.customSections(). > > R=clemensh@chromium.org > BUG=chromium:789952 > > Change-Id: Ida627fa6cdeacff01a0ec4d20e58281f17528010 > Reviewed-on: https://chromium-review.googlesource.com/800941 > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Commit-Queue: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49767} Bug: chromium:789952 Reviewed-on: https://chromium-review.googlesource.com/803575 Commit-Queue: Ben L. Titzer <titzer@google.com> Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#49796}(cherry picked from commit b6ca58e57ec6b1d66c68d9f61eab87c3ca5f6c6c) Reviewed-on: https://chromium-review.googlesource.com/808225 Cr-Commit-Position: refs/branch-heads/6.4@{#5} Cr-Branched-From: 0407506af3d9d7e2718be1d8759296165b218fcf-refs/heads/6.4.388@{#1} Cr-Branched-From: a5fc4e085ee543cb608eb11034bc8f147ba388e1-refs/heads/master@{#49724} (CVE-2018-6036) Change-Id: If66cdf7ef532543acc147743d0ce3a5ac0549120 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--chromium/v8/src/wasm/module-decoder.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/chromium/v8/src/wasm/module-decoder.cc b/chromium/v8/src/wasm/module-decoder.cc
index 94dc710b1b2..81a2c22db6d 100644
--- a/chromium/v8/src/wasm/module-decoder.cc
+++ b/chromium/v8/src/wasm/module-decoder.cc
@@ -1432,8 +1432,13 @@ std::vector<CustomSectionOffset> DecodeCustomSections(const byte* start,
uint32_t name_offset = decoder.pc_offset();
decoder.consume_bytes(name_length, "section name");
uint32_t payload_offset = decoder.pc_offset();
+ if (section_length < (payload_offset - section_start)) {
+ decoder.error("invalid section length");
+ break;
+ }
uint32_t payload_length = section_length - (payload_offset - section_start);
decoder.consume_bytes(payload_length);
+ if (decoder.failed()) break;
result.push_back({{section_start, section_length},
{name_offset, name_length},
{payload_offset, payload_length}});