|
@@ -1582,7 +1582,7 @@ int dso__load(struct dso *dso, struct map *map)
|
|
|
bool next_slot = false;
|
|
|
bool is_reg;
|
|
|
bool nsexit;
|
|
|
- int sirc;
|
|
|
+ int sirc = -1;
|
|
|
|
|
|
enum dso_binary_type symtab_type = binary_type_symtab[i];
|
|
|
|
|
@@ -1600,16 +1600,14 @@ int dso__load(struct dso *dso, struct map *map)
|
|
|
nsinfo__mountns_exit(&nsc);
|
|
|
|
|
|
is_reg = is_regular_file(name);
|
|
|
- sirc = symsrc__init(ss, dso, name, symtab_type);
|
|
|
+ if (is_reg)
|
|
|
+ sirc = symsrc__init(ss, dso, name, symtab_type);
|
|
|
|
|
|
if (nsexit)
|
|
|
nsinfo__mountns_enter(dso->nsinfo, &nsc);
|
|
|
|
|
|
- if (!is_reg || sirc < 0) {
|
|
|
- if (sirc >= 0)
|
|
|
- symsrc__destroy(ss);
|
|
|
+ if (!is_reg || sirc < 0)
|
|
|
continue;
|
|
|
- }
|
|
|
|
|
|
if (!syms_ss && symsrc__has_symtab(ss)) {
|
|
|
syms_ss = ss;
|