FILE *f = fopen(ETC_LDSO_PATH, "rbe");
if (f) {
if (getdelim(&sys_path, (size_t[1]){0}, 0, f) <= 0) {
- if (sys_path) free(sys_path);
+ free(sys_path);
sys_path = "";
}
fclose(f);
}
if (dyn[0] & (1<<DT_INIT))
((void (*)(void))(p->base + dyn[DT_INIT]))();
+ if (!need_locking && libc.threads_minus_1) {
+ need_locking = 1;
+ pthread_mutex_lock(&init_fini_lock);
+ }
}
if (need_locking) pthread_mutex_unlock(&init_fini_lock);
}