diff options
author | Nathan Jeffords <blunted2night@gmail.com> | 2010-05-21 18:23:56 +0000 |
---|---|---|
committer | Nathan Jeffords <blunted2night@gmail.com> | 2010-05-21 18:23:56 +0000 |
commit | 0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21 (patch) | |
tree | 5bd5941a675ae20bd84497c6ac21132b11a23ce7 /include/llvm | |
parent | a26a8471bdb132f963f26e4df2091ed204024f36 (diff) | |
download | external_llvm-0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21.zip external_llvm-0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21.tar.gz external_llvm-0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21.tar.bz2 |
added an assertion to MCObjectWriter::WriteBytes to catch misuse of the ZeroFillSize parameter
If the size of the string is greater than the zero fill size, the function will attempt to write a very large string of zeros to the object file (~4GB on 32 bit platforms). This assertion will catch the scenario and crash the program before the write occurs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104334 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/MC/MCObjectWriter.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/llvm/MC/MCObjectWriter.h b/include/llvm/MC/MCObjectWriter.h index 5d3493c..7053520 100644 --- a/include/llvm/MC/MCObjectWriter.h +++ b/include/llvm/MC/MCObjectWriter.h @@ -152,6 +152,8 @@ public: } void WriteBytes(StringRef Str, unsigned ZeroFillSize = 0) { + assert((ZeroFillSize == 0 || Str.size () <= ZeroFillSize) && + "data size greater than fill size, unexpected large write will occur"); OS << Str; if (ZeroFillSize) WriteZeros(ZeroFillSize - Str.size()); |