forked from OSchip/llvm-project
[Object] Fix MachO's getUuid to return a pointer into the object instead of a dangling ArrayRef.
This works because uuid's are always little endian so it's not swapped. Fixes use-after-return reported by asan. llvm-svn: 220567
This commit is contained in:
parent
aa1b35590f
commit
014601d56e
|
@ -2460,8 +2460,9 @@ ArrayRef<uint8_t> MachOObjectFile::getDyldInfoExportsTrie() const {
|
||||||
ArrayRef<uint8_t> MachOObjectFile::getUuid() const {
|
ArrayRef<uint8_t> MachOObjectFile::getUuid() const {
|
||||||
if (!UuidLoadCmd)
|
if (!UuidLoadCmd)
|
||||||
return ArrayRef<uint8_t>();
|
return ArrayRef<uint8_t>();
|
||||||
MachO::uuid_command Uuid = getStruct<MachO::uuid_command>(this, UuidLoadCmd);
|
// Returning a pointer is fine as uuid doesn't need endian swapping.
|
||||||
return ArrayRef<uint8_t>(Uuid.uuid, 16);
|
const char *Ptr = UuidLoadCmd + offsetof(MachO::uuid_command, uuid);
|
||||||
|
return ArrayRef<uint8_t>(reinterpret_cast<const uint8_t *>(Ptr), 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
StringRef MachOObjectFile::getStringTableData() const {
|
StringRef MachOObjectFile::getStringTableData() const {
|
||||||
|
|
Loading…
Reference in New Issue