Skip to content

Commit d71060e

Browse files
committed
Merge pull request #4166 from apple/🍒/austria/c69307e5eeb5
[lldb] Prevent object file plugins from changing the data buffer (cherry picked from commit f67bd2c)
1 parent aac7099 commit d71060e

17 files changed

+37
-39
lines changed

lldb/include/lldb/lldb-private-interfaces.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ typedef size_t (*ObjectFileGetModuleSpecifications)(
4545
lldb::offset_t data_offset, lldb::offset_t file_offset,
4646
lldb::offset_t length, ModuleSpecList &module_specs);
4747
typedef ObjectFile *(*ObjectFileCreateInstance)(const lldb::ModuleSP &module_sp,
48-
lldb::DataBufferSP &data_sp,
48+
lldb::DataBufferSP data_sp,
4949
lldb::offset_t data_offset,
5050
const FileSpec *file,
5151
lldb::offset_t file_offset,
5252
lldb::offset_t length);
5353
typedef ObjectFile *(*ObjectFileCreateMemoryInstance)(
54-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
54+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
5555
const lldb::ProcessSP &process_sp, lldb::addr_t offset);
5656
typedef bool (*ObjectFileSaveCore)(const lldb::ProcessSP &process_sp,
5757
const FileSpec &outfile,

lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void ObjectFileBreakpad::Terminate() {
5757
}
5858

5959
ObjectFile *ObjectFileBreakpad::CreateInstance(
60-
const ModuleSP &module_sp, DataBufferSP &data_sp, offset_t data_offset,
60+
const ModuleSP &module_sp, DataBufferSP data_sp, offset_t data_offset,
6161
const FileSpec *file, offset_t file_offset, offset_t length) {
6262
if (!data_sp) {
6363
data_sp = MapFileData(*file, length, file_offset);
@@ -84,7 +84,7 @@ ObjectFile *ObjectFileBreakpad::CreateInstance(
8484
}
8585

8686
ObjectFile *ObjectFileBreakpad::CreateMemoryInstance(
87-
const ModuleSP &module_sp, DataBufferSP &data_sp,
87+
const ModuleSP &module_sp, DataBufferSP data_sp,
8888
const ProcessSP &process_sp, addr_t header_addr) {
8989
return nullptr;
9090
}

lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ class ObjectFileBreakpad : public ObjectFile {
2727
}
2828

2929
static ObjectFile *
30-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
30+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
3131
lldb::offset_t data_offset, const FileSpec *file,
3232
lldb::offset_t file_offset, lldb::offset_t length);
3333

3434
static ObjectFile *CreateMemoryInstance(const lldb::ModuleSP &module_sp,
35-
lldb::DataBufferSP &data_sp,
35+
lldb::DataBufferSP data_sp,
3636
const lldb::ProcessSP &process_sp,
3737
lldb::addr_t header_addr);
3838

lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ void ObjectFileELF::Terminate() {
340340
}
341341

342342
ObjectFile *ObjectFileELF::CreateInstance(const lldb::ModuleSP &module_sp,
343-
DataBufferSP &data_sp,
343+
DataBufferSP data_sp,
344344
lldb::offset_t data_offset,
345345
const lldb_private::FileSpec *file,
346346
lldb::offset_t file_offset,
@@ -383,7 +383,7 @@ ObjectFile *ObjectFileELF::CreateInstance(const lldb::ModuleSP &module_sp,
383383
}
384384

385385
ObjectFile *ObjectFileELF::CreateMemoryInstance(
386-
const lldb::ModuleSP &module_sp, DataBufferSP &data_sp,
386+
const lldb::ModuleSP &module_sp, DataBufferSP data_sp,
387387
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr) {
388388
if (data_sp && data_sp->GetByteSize() > (llvm::ELF::EI_NIDENT)) {
389389
const uint8_t *magic = data_sp->GetBytes();

lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ class ObjectFileELF : public lldb_private::ObjectFile {
6868
}
6969

7070
static lldb_private::ObjectFile *
71-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
71+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
7272
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
7373
lldb::offset_t file_offset, lldb::offset_t length);
7474

7575
static lldb_private::ObjectFile *CreateMemoryInstance(
76-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
76+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
7777
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
7878

7979
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,

lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void ObjectFileJIT::Terminate() {
5454
}
5555

5656
ObjectFile *ObjectFileJIT::CreateInstance(const lldb::ModuleSP &module_sp,
57-
DataBufferSP &data_sp,
57+
DataBufferSP data_sp,
5858
lldb::offset_t data_offset,
5959
const FileSpec *file,
6060
lldb::offset_t file_offset,
@@ -65,7 +65,7 @@ ObjectFile *ObjectFileJIT::CreateInstance(const lldb::ModuleSP &module_sp,
6565
}
6666

6767
ObjectFile *ObjectFileJIT::CreateMemoryInstance(const lldb::ModuleSP &module_sp,
68-
DataBufferSP &data_sp,
68+
DataBufferSP data_sp,
6969
const ProcessSP &process_sp,
7070
lldb::addr_t header_addr) {
7171
// JIT'ed object file is backed by the ObjectFileJITDelegate, never read from

lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ class ObjectFileJIT : public lldb_private::ObjectFile {
3333
}
3434

3535
static lldb_private::ObjectFile *
36-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
36+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
3737
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
3838
lldb::offset_t file_offset, lldb::offset_t length);
3939

4040
static lldb_private::ObjectFile *CreateMemoryInstance(
41-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
41+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
4242
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
4343

4444
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,

lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ void ObjectFileMachO::Terminate() {
839839
}
840840

841841
ObjectFile *ObjectFileMachO::CreateInstance(const lldb::ModuleSP &module_sp,
842-
DataBufferSP &data_sp,
842+
DataBufferSP data_sp,
843843
lldb::offset_t data_offset,
844844
const FileSpec *file,
845845
lldb::offset_t file_offset,
@@ -870,7 +870,7 @@ ObjectFile *ObjectFileMachO::CreateInstance(const lldb::ModuleSP &module_sp,
870870
}
871871

872872
ObjectFile *ObjectFileMachO::CreateMemoryInstance(
873-
const lldb::ModuleSP &module_sp, DataBufferSP &data_sp,
873+
const lldb::ModuleSP &module_sp, DataBufferSP data_sp,
874874
const ProcessSP &process_sp, lldb::addr_t header_addr) {
875875
if (ObjectFileMachO::MagicBytesMatch(data_sp, 0, data_sp->GetByteSize())) {
876876
std::unique_ptr<ObjectFile> objfile_up(

lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ class ObjectFileMachO : public lldb_private::ObjectFile {
4444
}
4545

4646
static lldb_private::ObjectFile *
47-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
47+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
4848
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
4949
lldb::offset_t file_offset, lldb::offset_t length);
5050

5151
static lldb_private::ObjectFile *CreateMemoryInstance(
52-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
52+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
5353
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
5454

5555
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,

lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ void ObjectFileMinidump::Terminate() {
3333
}
3434

3535
ObjectFile *ObjectFileMinidump::CreateInstance(
36-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
36+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
3737
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
3838
lldb::offset_t offset, lldb::offset_t length) {
3939
return nullptr;
4040
}
4141

4242
ObjectFile *ObjectFileMinidump::CreateMemoryInstance(
43-
const lldb::ModuleSP &module_sp, DataBufferSP &data_sp,
43+
const lldb::ModuleSP &module_sp, DataBufferSP data_sp,
4444
const ProcessSP &process_sp, lldb::addr_t header_addr) {
4545
return nullptr;
4646
}

lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ class ObjectFileMinidump : public lldb_private::PluginInterface {
3838
llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
3939

4040
static lldb_private::ObjectFile *
41-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
41+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
4242
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
4343
lldb::offset_t offset, lldb::offset_t length);
4444

4545
static lldb_private::ObjectFile *CreateMemoryInstance(
46-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
46+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
4747
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
4848

4949
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,

lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ bool ObjectFilePDB::initPDBFile() {
8787
}
8888

8989
ObjectFile *
90-
ObjectFilePDB::CreateInstance(const ModuleSP &module_sp, DataBufferSP &data_sp,
90+
ObjectFilePDB::CreateInstance(const ModuleSP &module_sp, DataBufferSP data_sp,
9191
offset_t data_offset, const FileSpec *file,
9292
offset_t file_offset, offset_t length) {
9393
auto objfile_up = std::make_unique<ObjectFilePDB>(
@@ -98,7 +98,7 @@ ObjectFilePDB::CreateInstance(const ModuleSP &module_sp, DataBufferSP &data_sp,
9898
}
9999

100100
ObjectFile *ObjectFilePDB::CreateMemoryInstance(const ModuleSP &module_sp,
101-
DataBufferSP &data_sp,
101+
DataBufferSP data_sp,
102102
const ProcessSP &process_sp,
103103
addr_t header_addr) {
104104
return nullptr;

lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ class ObjectFilePDB : public ObjectFile {
3131
loadPDBFile(std::string PdbPath, llvm::BumpPtrAllocator &Allocator);
3232

3333
static ObjectFile *
34-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
34+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
3535
lldb::offset_t data_offset, const FileSpec *file,
3636
lldb::offset_t file_offset, lldb::offset_t length);
3737

3838
static ObjectFile *CreateMemoryInstance(const lldb::ModuleSP &module_sp,
39-
lldb::DataBufferSP &data_sp,
39+
lldb::DataBufferSP data_sp,
4040
const lldb::ProcessSP &process_sp,
4141
lldb::addr_t header_addr);
4242

lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,10 @@ llvm::StringRef ObjectFilePECOFF::GetPluginDescriptionStatic() {
8181
"(32 and 64 bit)";
8282
}
8383

84-
ObjectFile *ObjectFilePECOFF::CreateInstance(const lldb::ModuleSP &module_sp,
85-
DataBufferSP &data_sp,
86-
lldb::offset_t data_offset,
87-
const lldb_private::FileSpec *file_p,
88-
lldb::offset_t file_offset,
89-
lldb::offset_t length) {
84+
ObjectFile *ObjectFilePECOFF::CreateInstance(
85+
const lldb::ModuleSP &module_sp, DataBufferSP data_sp,
86+
lldb::offset_t data_offset, const lldb_private::FileSpec *file_p,
87+
lldb::offset_t file_offset, lldb::offset_t length) {
9088
FileSpec file = file_p ? *file_p : FileSpec();
9189
if (!data_sp) {
9290
data_sp = MapFileData(file, length, file_offset);
@@ -117,7 +115,7 @@ ObjectFile *ObjectFilePECOFF::CreateInstance(const lldb::ModuleSP &module_sp,
117115
}
118116

119117
ObjectFile *ObjectFilePECOFF::CreateMemoryInstance(
120-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
118+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
121119
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr) {
122120
if (!data_sp || !ObjectFilePECOFF::MagicBytesMatch(data_sp))
123121
return nullptr;

lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ class ObjectFilePECOFF : public lldb_private::ObjectFile {
6262
static llvm::StringRef GetPluginDescriptionStatic();
6363

6464
static ObjectFile *
65-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
65+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
6666
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
6767
lldb::offset_t offset, lldb::offset_t length);
6868

6969
static lldb_private::ObjectFile *CreateMemoryInstance(
70-
const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
70+
const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
7171
const lldb::ProcessSP &process_sp, lldb::addr_t header_addr);
7272

7373
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,

lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ void ObjectFileWasm::Terminate() {
8888
}
8989

9090
ObjectFile *
91-
ObjectFileWasm::CreateInstance(const ModuleSP &module_sp, DataBufferSP &data_sp,
91+
ObjectFileWasm::CreateInstance(const ModuleSP &module_sp, DataBufferSP data_sp,
9292
offset_t data_offset, const FileSpec *file,
9393
offset_t file_offset, offset_t length) {
9494
Log *log = GetLog(LLDBLog::Object);
@@ -141,7 +141,7 @@ ObjectFileWasm::CreateInstance(const ModuleSP &module_sp, DataBufferSP &data_sp,
141141
}
142142

143143
ObjectFile *ObjectFileWasm::CreateMemoryInstance(const ModuleSP &module_sp,
144-
DataBufferSP &data_sp,
144+
DataBufferSP data_sp,
145145
const ProcessSP &process_sp,
146146
addr_t header_addr) {
147147
if (!ValidateModuleHeader(data_sp))

lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ class ObjectFileWasm : public ObjectFile {
3030
}
3131

3232
static ObjectFile *
33-
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
33+
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP data_sp,
3434
lldb::offset_t data_offset, const FileSpec *file,
3535
lldb::offset_t file_offset, lldb::offset_t length);
3636

3737
static ObjectFile *CreateMemoryInstance(const lldb::ModuleSP &module_sp,
38-
lldb::DataBufferSP &data_sp,
38+
lldb::DataBufferSP data_sp,
3939
const lldb::ProcessSP &process_sp,
4040
lldb::addr_t header_addr);
4141

0 commit comments

Comments
 (0)