diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-29 18:07:29 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-29 18:07:29 +0000 |
commit | 851f310cec3376982097f2ff69b6d8d5d00af785 (patch) | |
tree | 4c3ae07249abd5c4865e2c76f1c1a103f7f30db5 /clang/lib/Edit | |
parent | d15c2805ab833180dedb2cadd1420e56ec0bd295 (diff) | |
download | bcm5719-llvm-851f310cec3376982097f2ff69b6d8d5d00af785.tar.gz bcm5719-llvm-851f310cec3376982097f2ff69b6d8d5d00af785.zip |
[edit] Don't hit an assert when trying to delete a trailing space at EOF
The buffer is guaranteed to be zero-terminated so we can just
circumvent the check. Found by afl-fuzz.
llvm-svn: 233496
Diffstat (limited to 'clang/lib/Edit')
-rw-r--r-- | clang/lib/Edit/EditedSource.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Edit/EditedSource.cpp b/clang/lib/Edit/EditedSource.cpp index a5b5875b19d..e557de92410 100644 --- a/clang/lib/Edit/EditedSource.cpp +++ b/clang/lib/Edit/EditedSource.cpp @@ -295,9 +295,11 @@ static void adjustRemoval(const SourceManager &SM, const LangOptions &LangOpts, } if (buffer[end] == ' ') { + assert((end + 1 != buffer.size() || buffer.data()[end + 1] == 0) && + "buffer not zero-terminated!"); if (canRemoveWhitespace(/*left=*/buffer[begin-1], /*beforeWSpace=*/buffer[end-1], - /*right=*/buffer[end+1], + /*right=*/buffer.data()[end + 1], // zero-terminated LangOpts)) ++len; return; |