summaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/COFF/Writer.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-12-20 21:35:59 +0000
committerMartin Storsjo <martin@martin.st>2018-12-20 21:35:59 +0000
commit693d985dbbf56d2b07f6ea97bc2916fbb517e562 (patch)
tree0815c46662cfed5c90af71553dc3debcc8b5ed77 /llvm/tools/llvm-objcopy/COFF/Writer.cpp
parentbf060f3d0e153001562aed8ac8e3f54565a26364 (diff)
[llvm-objcopy] [COFF] Avoid memcpy() with null parameters in more places. NFC.
This fixes all cases of errors in asan+ubsan builds. Also use std::copy instead of if+memcpy in the previously updated spot, for consistency.
Diffstat (limited to 'llvm/tools/llvm-objcopy/COFF/Writer.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/COFF/Writer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/tools/llvm-objcopy/COFF/Writer.cpp b/llvm/tools/llvm-objcopy/COFF/Writer.cpp
index 6cda11c8a6b..5a461e43a55 100644
--- a/llvm/tools/llvm-objcopy/COFF/Writer.cpp
+++ b/llvm/tools/llvm-objcopy/COFF/Writer.cpp
@@ -215,7 +215,7 @@ void COFFWriter::writeHeaders(bool IsBigObj) {
void COFFWriter::writeSections() {
for (const auto &S : Obj.Sections) {
uint8_t *Ptr = Buf.getBufferStart() + S.Header.PointerToRawData;
- memcpy(Ptr, S.Contents.data(), S.Contents.size());
+ std::copy(S.Contents.begin(), S.Contents.end(), Ptr);
// For executable sections, pad the remainder of the raw data size with
// 0xcc, which is int3 on x86.
@@ -225,8 +225,8 @@ void COFFWriter::writeSections() {
S.Header.SizeOfRawData - S.Contents.size());
Ptr += S.Header.SizeOfRawData;
- if (!S.Relocs.empty())
- memcpy(Ptr, S.Relocs.data(), S.Relocs.size() * sizeof(coff_relocation));
+ std::copy(S.Relocs.begin(), S.Relocs.end(),
+ reinterpret_cast<coff_relocation *>(Ptr));
}
}
@@ -237,7 +237,7 @@ template <class SymbolTy> void COFFWriter::writeSymbolStringTables() {
copySymbol<SymbolTy, coff_symbol32>(*reinterpret_cast<SymbolTy *>(Ptr),
S.Sym);
Ptr += sizeof(SymbolTy);
- memcpy(Ptr, S.AuxData.data(), S.AuxData.size());
+ std::copy(S.AuxData.begin(), S.AuxData.end(), Ptr);
Ptr += S.AuxData.size();
}
if (StrTabBuilder.getSize() > 4 || !Obj.IsPE) {