From 0783fb7e6d2f03cbb398dc0f083c96ba8af9ab21 Mon Sep 17 00:00:00 2001 From: Nathan Jeffords Date: Fri, 21 May 2010 18:23:56 +0000 Subject: 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 --- include/llvm/MC/MCObjectWriter.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/llvm/MC/MCObjectWriter.h') 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()); -- cgit v1.1