diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-24 01:00:08 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-24 01:00:08 +0000 | 
| commit | c7dac04c3480f3c20487f912f77343139fce2d99 (patch) | |
| tree | 21a09bce0171e27bd1e92649db9df797fa097cea /lib/Object/WindowsResource.cpp | |
| parent | 044eb2f6afba375a914ac9d8024f8f5142bb912e (diff) | |
Notes
Diffstat (limited to 'lib/Object/WindowsResource.cpp')
| -rw-r--r-- | lib/Object/WindowsResource.cpp | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Object/WindowsResource.cpp b/lib/Object/WindowsResource.cpp index 9ca584a4a1ae1..271224ec63120 100644 --- a/lib/Object/WindowsResource.cpp +++ b/lib/Object/WindowsResource.cpp @@ -14,6 +14,7 @@  #include "llvm/Object/WindowsResource.h"  #include "llvm/Object/COFF.h"  #include "llvm/Support/FileOutputBuffer.h" +#include "llvm/Support/FormatVariadic.h"  #include "llvm/Support/MathExtras.h"  #include <ctime>  #include <queue> @@ -560,10 +561,9 @@ void WindowsResourceCOFFWriter::writeSymbolTable() {    // Now write a symbol for each relocation.    for (unsigned i = 0; i < Data.size(); i++) { -    char RelocationName[9]; -    sprintf(RelocationName, "$R%06X", DataOffsets[i]); +    auto RelocationName = formatv("$R{0:X-6}", i & 0xffffff).sstr<COFF::NameSize>();      Symbol = reinterpret_cast<coff_symbol16 *>(BufferStart + CurrentOffset); -    strncpy(Symbol->Name.ShortName, RelocationName, (size_t)COFF::NameSize); +    memcpy(Symbol->Name.ShortName, RelocationName.data(), (size_t) COFF::NameSize);      Symbol->Value = DataOffsets[i];      Symbol->SectionNumber = 2;      Symbol->Type = COFF::IMAGE_SYM_DTYPE_NULL;  | 
