Skip to content
Success

Changes

Summary

  1. Fix cstring input length interpretation issue that had a buffer overflow case. (details)
  2. Insert additional checks so that impossible, or just unimplemented, local control flow raises an error in CFA. (details)
Commit 2fa0237f52bd8db42015c83dee0d38191a902db4 by Michael Brooks
Fix cstring input length interpretation issue that had a buffer overflow case.

The cases added to the manipulatorsInput test are runnable against an old libcfa build.  In this setup, the test fails with an illustration of the bug.

The testing in this commit drives the following inputs through a length-8 buffer.
- 123456
- 123456789
The obviously-missing cases, like 1234567, will be added later.
They will accompany fixes for further bugs not solved yet.
The file was modifiedtests/io/.expect/manipulatorsInput.x64.txt
The file was modifiedtests/io/.in/manipulatorsInput.txt
The file was modifiedlibcfa/src/iostream.cfa
The file was modifiedtests/io/manipulatorsInput.cfa
The file was modifiedtests/io/.expect/manipulatorsInput.x86.txt
The file was modifiedtests/io/.expect/manipulatorsInput.arm64.txt
Commit 553f032fc07a39fc4fc69943eb5e97e2504b74a1 by ajbeach
Insert additional checks so that impossible, or just unimplemented, local control flow raises an error in CFA.
The file was addedtests/exceptions/.expect/try-ctrl-flow.txt
The file was addedtests/exceptions/try-ctrl-flow.cfa
The file was modifiedsrc/ControlStruct/MultiLevelExit.cpp
The file was removedtests/exceptions/.expect/finally-error.txt
The file was removedtests/exceptions/finally-error.cfa