X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/aaa49e3405e08bf12883f3ab3d89db0c73804c91..1ceaf1eee798187ff34b93b9f5bae67c3cc50e27:/packages/termux-tools/termux-elf-cleaner.cpp diff --git a/packages/termux-tools/termux-elf-cleaner.cpp b/packages/termux-tools/termux-elf-cleaner.cpp index a8dae756..aff33000 100644 --- a/packages/termux-tools/termux-elf-cleaner.cpp +++ b/packages/termux-tools/termux-elf-cleaner.cpp @@ -59,24 +59,19 @@ bool process_elf(uint8_t* bytes, size_t elf_file_size) for (unsigned int j = 0; j < dynamic_section_entries; j++) { ElfDynamicSectionEntryType* dynamic_section_entry = dynamic_section + j; + char const* removed_name = nullptr; switch (dynamic_section_entry->d_tag) { - case DT_VERNEEDED: - case DT_VERNEEDNUM: - case DT_RPATH: - case DT_RUNPATH: - char const* removed_name; - switch (dynamic_section_entry->d_tag) { - case DT_VERNEEDED: removed_name = "DT_VERNEEDED"; break; - case DT_VERNEEDNUM: removed_name = "DT_VERNEEDNUM"; break; - case DT_RPATH: removed_name = "DT_RPATH"; break; - case DT_RUNPATH: removed_name = "DT_RUNPATH"; break; - } - printf("Removing the %s dynamic section entry\n", removed_name); - // Tag the entry with DT_NULL and put it last: - dynamic_section_entry->d_tag = DT_NULL; - // Decrease j to process new entry index: - std::swap(dynamic_section[j--], dynamic_section[last_nonnull_entry_idx--]); - break; + case DT_VERNEEDED: removed_name = "DT_VERNEEDED"; break; + case DT_VERNEEDNUM: removed_name = "DT_VERNEEDNUM"; break; + case DT_RPATH: removed_name = "DT_RPATH"; break; + case DT_RUNPATH: removed_name = "DT_RUNPATH"; break; + } + if (removed_name != nullptr) { + printf("Removing the %s dynamic section entry\n", removed_name); + // Tag the entry with DT_NULL and put it last: + dynamic_section_entry->d_tag = DT_NULL; + // Decrease j to process new entry index: + std::swap(dynamic_section[j--], dynamic_section[last_nonnull_entry_idx--]); } } }