Fix unload of recursively linked library
Expanded test for recursive libs. Fixed bug with unnecessary
soinfo_free of already loaded library.
Change-Id: I2cc19f2650c8b12a35feeac127ef608ebba44d88
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 0e5142a..4bc10c5 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -843,6 +843,7 @@
}
if ((dlflags & RTLD_NOLOAD) != 0) {
+ DL_ERR("library \"%s\" wasn't loaded and RTLD_NOLOAD prevented it", name);
return nullptr;
}
@@ -950,7 +951,6 @@
soinfo* needed_by = task->get_needed_by();
if (is_recursive(si, needed_by)) {
- soinfo_free(si);
return false;
}