Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Issue 1157273004: Check for invalid abbreviation operators in munged bitcode. (Closed)

Created:
5 years, 7 months ago by Karl
Modified:
5 years, 6 months ago
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Check for invalid abbreviation operators in munged bitcode. Discovered (via fuzzing) that errors are generated by the PNaCl bitstream writer if the abbreviation is invalid. It also appplies operator-specific validity checks as each abbreviation operator is built. Updated the munged bitcode writer to check for these conditions and apply recoverable fixes if they occur. BUG=https://code.google.com/p/nativeclient/issues/detail?id=4169 R=jvoung@chromium.org Committed: https://chromium.googlesource.com/native_client/pnacl-llvm/+/2c9a36eceb3d8f0f8f2214f77879b65308e8c89e

Patch Set 1 #

Patch Set 2 : Fix nits and simplify tests. #

Patch Set 3 : Fix nit. Remove copied comment from tests. #

Total comments: 22

Patch Set 4 : Fix issues raised in patch set 3. #

Patch Set 5 : Fix nits. #

Total comments: 8

Patch Set 6 : Fix nits. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+515 lines, -376 lines) Patch
M lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp View 1 2 3 4 3 chunks +79 lines, -42 lines 0 comments Download
M unittests/Bitcode/NaClMungeWriteErrorTests.cpp View 1 2 3 4 5 9 chunks +436 lines, -334 lines 0 comments Download

Messages

Total messages: 8 (2 generated)
Karl
5 years, 7 months ago (2015-05-27 17:37:04 UTC) #3
jvoung (off chromium)
https://codereview.chromium.org/1157273004/diff/40001/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp File lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp (right): https://codereview.chromium.org/1157273004/diff/40001/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp#newcode121 lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp:121: // Returns true if abbreviation operand is legal. If ...
5 years, 7 months ago (2015-05-27 20:09:38 UTC) #4
Karl
https://codereview.chromium.org/1157273004/diff/40001/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp File lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp (right): https://codereview.chromium.org/1157273004/diff/40001/lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp#newcode121 lib/Bitcode/NaCl/TestUtils/NaClBitcodeMungeWriter.cpp:121: // Returns true if abbreviation operand is legal. If ...
5 years, 6 months ago (2015-05-28 20:50:32 UTC) #5
jvoung (off chromium)
lgtm https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClMungeWriteErrorTests.cpp File unittests/Bitcode/NaClMungeWriteErrorTests.cpp (right): https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClMungeWriteErrorTests.cpp#newcode96 unittests/Bitcode/NaClMungeWriteErrorTests.cpp:96: // written bitcode records. DumpedBitcode is the expected ...
5 years, 6 months ago (2015-05-29 16:43:25 UTC) #6
Karl
Committed patchset #6 (id:90001) manually as 2c9a36eceb3d8f0f8f2214f77879b65308e8c89e (presubmit successful).
5 years, 6 months ago (2015-05-29 20:01:22 UTC) #7
Karl
5 years, 6 months ago (2015-05-29 20:02:17 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClM...
File unittests/Bitcode/NaClMungeWriteErrorTests.cpp (right):

https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClM...
unittests/Bitcode/NaClMungeWriteErrorTests.cpp:96: //  written bitcode records. 
DumpedBitcode is the expected dumped
On 2015/05/29 16:43:25, jvoung wrote:
> extra space (line up comments)

Done.

https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClM...
unittests/Bitcode/NaClMungeWriteErrorTests.cpp:120: // simplier write munger.
On 2015/05/29 16:43:25, jvoung wrote:
> simplier -> simpler

Done.

https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClM...
unittests/Bitcode/NaClMungeWriteErrorTests.cpp:135: // Same as CheckParseEdits,
but run the simplier write munger instead
On 2015/05/29 16:43:25, jvoung wrote:
> simplier -> simpler

Done.

https://codereview.chromium.org/1157273004/diff/70001/unittests/Bitcode/NaClM...
unittests/Bitcode/NaClMungeWriteErrorTests.cpp:136: // of the bitcode parser.
Records is the the records dumped by the
On 2015/05/29 16:43:25, jvoung wrote:
> the the -> the

Done.

Powered by Google App Engine
This is Rietveld 408576698