summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2017-12-31 02:07:16 -0800
committerJay Freeman (saurik) <saurik@saurik.com>2017-12-31 02:07:16 -0800
commit422bad37a8c2fef85a857d6ee9707057879d3231 (patch)
tree112c460f2d4d475f676d5657fb5867e8f92a75ca
parent1190f447adc6290d57702d7992474b10557370e5 (diff)
downloadldid-422bad37a8c2fef85a857d6ee9707057879d3231.tar.gz
ldid-422bad37a8c2fef85a857d6ee9707057879d3231.tar.zst
ldid-422bad37a8c2fef85a857d6ee9707057879d3231.zip
Support signing binaries without any symbol table.
-rw-r--r--ldid.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/ldid.cpp b/ldid.cpp
index 08ac3a3..1f9287c 100644
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -1220,9 +1220,11 @@ static void Allocate(const void *idata, size_t isize, std::streambuf &output, co
if (symtab != NULL) {
auto end(mach_header.Swap(symtab->stroff) + mach_header.Swap(symtab->strsize));
- _assert(end <= size);
- _assert(end >= size - 0x10);
- size = end;
+ if (symtab->stroff != 0 || symtab->strsize != 0) {
+ _assert(end <= size);
+ _assert(end >= size - 0x10);
+ size = end;
+ }
}
size_t alloc(allocate(mach_header, size));