[lld][MachO] Make sure LC_RPATH command size is a multiple of the pointer size.

llvm-svn: 251637
This commit is contained in:
Lang Hames 2015-10-29 16:50:26 +00:00
parent d122fd8d06
commit 2ed3bf9527
2 changed files with 3 additions and 3 deletions

View File

@ -429,7 +429,7 @@ uint32_t MachOFileLayout::loadCommandsSize(uint32_t &count) {
// Add LC_RPATH
for (const StringRef &path : _file.rpaths) {
size += sizeof(rpath_command) + pointerAlign(path.size()+1);
size += pointerAlign(sizeof(rpath_command) + path.size() + 1);
++count;
}
@ -855,7 +855,7 @@ std::error_code MachOFileLayout::writeLoadCommands() {
// Add LC_RPATH
for (const StringRef &path : _file.rpaths) {
rpath_command *rpc = reinterpret_cast<rpath_command *>(lc);
uint32_t size = sizeof(rpath_command) + pointerAlign(path.size()+1);
uint32_t size = pointerAlign(sizeof(rpath_command) + path.size() + 1);
rpc->cmd = LC_RPATH;
rpc->cmdsize = size;
rpc->path = sizeof(rpath_command); // offset

View File

@ -34,5 +34,5 @@ global-symbols:
# CHECK-BINARY-WRITE: cmd LC_RPATH
# CHECK-BINARY-WRITE-NEXT: cmdsize 44
# CHECK-BINARY-WRITE-NEXT: cmdsize 40
# CHECK-BINARY-WRITE-NEXT: path @loader_path/../Frameworks (offset 12)