switch (n_type) {
case N_INDR: {
const char *reexport_name_cstr = strtab_data.PeekCStr(nlist.n_value);
- if (reexport_name_cstr && reexport_name_cstr[0]) {
+ if (reexport_name_cstr && reexport_name_cstr[0] && symbol_name) {
type = eSymbolTypeReExported;
ConstString reexport_name(reexport_name_cstr +
((reexport_name_cstr[0] == '_') ? 1 : 0));
sym[sym_idx].SetReExportedSymbolName(reexport_name);
set_value = false;
reexport_shlib_needs_fixup[sym_idx] = reexport_name;
- indirect_symbol_names.insert(ConstString(
- symbol_name +
- ((symbol_name && (symbol_name[0] == '_')) ? 1 : 0)));
+ indirect_symbol_names.insert(
+ ConstString(symbol_name + ((symbol_name[0] == '_') ? 1 : 0)));
} else
type = eSymbolTypeUndefined;
} break;
}
uint32_t imgcount = m_data.GetU32(&offset);
uint64_t entries_fileoff = m_data.GetU64(&offset);
- /* leaving the following dead code as comments for spec documentation
- offset += 4; // uint32_t entries_size;
- offset += 4; // uint32_t unused;
- */
+ // 'entries_size' is not used, nor is the 'unused' entry.
+ // offset += 4; // uint32_t entries_size;
+ // offset += 4; // uint32_t unused;
offset = entries_fileoff;
for (uint32_t i = 0; i < imgcount; i++) {