diff options
| author | George Rimar <grimar@accesssoftek.com> | 2018-01-16 08:09:24 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2018-01-16 08:09:24 +0000 |
| commit | 83e63d96a9a949d3f2fcee6f663c4e4923b9da6f (patch) | |
| tree | 59be13b941e3e3636605b4a2e606483b6e193f3b /llvm/utils/FileCheck | |
| parent | 035dd256d52c0904cf7bc97bcbf156bd4bf008ca (diff) | |
| download | bcm5719-llvm-83e63d96a9a949d3f2fcee6f663c4e4923b9da6f.tar.gz bcm5719-llvm-83e63d96a9a949d3f2fcee6f663c4e4923b9da6f.zip | |
[FileCheck] - Fix possible buffer out of bounds access when parsing --check-prefix.
FileCheck tool crashes when trying to parse --check-prefix argument if there is no any
data after it.
For example test like following would crash if there are no symbols and no EOL mark after `boom`:
# REQUIRES: x86
# RUN: <skipped few lines>
# RUN: llvm-readobj -t %t | FileCheck %s --check-prefix=boom
Patch fixes the issue.
Differential revision: https://reviews.llvm.org/D42057
llvm-svn: 322536
Diffstat (limited to 'llvm/utils/FileCheck')
| -rw-r--r-- | llvm/utils/FileCheck/FileCheck.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index 7db97301637..7274db67c0f 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -718,6 +718,9 @@ static size_t CheckTypeSize(Check::CheckType Ty) { } static Check::CheckType FindCheckType(StringRef Buffer, StringRef Prefix) { + if (Buffer.size() <= Prefix.size()) + return Check::CheckNone; + char NextChar = Buffer[Prefix.size()]; // Verify that the : is present after the prefix. |

