diff --git a/src/linker.cpp b/src/linker.cpp index 2403da5e..4959597e 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -313,6 +313,9 @@ ElfLinker::Symbol *ElfLinker::findSymbol(const char *name, bool fatal) const { ElfLinker::Section *ElfLinker::addSection(const char *sname, const void *sdata, int slen, unsigned p2align) { // printf("addSection: %s len=%d align=%d\n", sname, slen, p2align); + if (!sdata + && (!strcmp("ABS*", sname) || !strcmp("UND*", sname))) + return nullptr; if (update_capacity(nsections, &nsections_capacity)) sections = static_cast
(realloc(sections, nsections_capacity * sizeof(Section *)));