aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/MC/MCObjectWriter.h
diff options
context:
space:
mode:
authorNathan Jeffords <blunted2night@gmail.com>2010-05-21 18:23:56 +0000
committerNathan Jeffords <blunted2night@gmail.com>2010-05-21 18:23:56 +0000
commit0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21 (patch)
tree5bd5941a675ae20bd84497c6ac21132b11a23ce7 /include/llvm/MC/MCObjectWriter.h
parenta26a8471bdb132f963f26e4df2091ed204024f36 (diff)
downloadexternal_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/MC/MCObjectWriter.h')
-rw-r--r--include/llvm/MC/MCObjectWriter.h2
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());