[llvm] [dsymutil] Add missing validation for zero alignment section (PR #168925)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 20 10:14:31 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-debuginfo
Author: Ch1p (Ch111p)
<details>
<summary>Changes</summary>
Section alignments in the DWARF segment are often zero by default. Therefore, the validation logic must be placed outside the alignUp path; otherwise, dsymutil may generate an invalid Mach-O file.
---
Full diff: https://github.com/llvm/llvm-project/pull/168925.diff
1 Files Affected:
- (modified) llvm/tools/dsymutil/MachOUtils.cpp (+4-4)
``````````diff
diff --git a/llvm/tools/dsymutil/MachOUtils.cpp b/llvm/tools/dsymutil/MachOUtils.cpp
index 362a999515683..fba698896618b 100644
--- a/llvm/tools/dsymutil/MachOUtils.cpp
+++ b/llvm/tools/dsymutil/MachOUtils.cpp
@@ -339,11 +339,11 @@ static bool createDwarfSegment(const MCAssembler& Asm,uint64_t VMAddr, uint64_t
if (Alignment > 1) {
VMAddr = alignTo(VMAddr, Alignment);
FileOffset = alignTo(FileOffset, Alignment);
- if (FileOffset > UINT32_MAX)
- return error("section " + Sec->getName() +
- "'s file offset exceeds 4GB."
- " Refusing to produce an invalid Mach-O file.");
}
+ if (FileOffset > UINT32_MAX)
+ return error("section " + Sec->getName() +
+ "'s file offset exceeds 4GB."
+ " Refusing to produce an invalid Mach-O file.");
Writer.writeSection(Asm, *Sec, VMAddr, FileOffset, 0, 0, 0);
FileOffset += Asm.getSectionAddressSize(*Sec);
``````````
</details>
https://github.com/llvm/llvm-project/pull/168925
More information about the llvm-commits
mailing list