Merge "Add offset to backtrace_string printing." am: f6a5afcb62 am: c4d31c981a
am: 1ac92e24b8

Change-Id: I7aa9398a3eb181195183d56e0c97fc79652e5cef
diff --git a/libc/bionic/system_properties.cpp b/libc/bionic/system_properties.cpp
index a958699..6906ecd 100644
--- a/libc/bionic/system_properties.cpp
+++ b/libc/bionic/system_properties.cpp
@@ -1051,16 +1051,15 @@
     if (!initialize_properties_from_file("/system/etc/selinux/plat_property_contexts")) {
       return false;
     }
-    if (!initialize_properties_from_file("/vendor/etc/selinux/nonplat_property_contexts")) {
-      return false;
-    }
+    // Don't check for failure here, so we always have a sane list of properties.
+    // E.g. In case of recovery, the vendor partition will not have mounted and we
+    // still need the system / platform properties to function.
+    initialize_properties_from_file("/vendor/etc/selinux/nonplat_property_contexts");
   } else {
     if (!initialize_properties_from_file("/plat_property_contexts")) {
       return false;
     }
-    if (!initialize_properties_from_file("/nonplat_property_contexts")) {
-      return false;
-    }
+    initialize_properties_from_file("/nonplat_property_contexts");
   }
 
   return true;
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 201e187..8e7a141 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1776,9 +1776,6 @@
         if (local_unload_list.contains(child)) {
           continue;
         } else if (child->is_linked() && child->get_local_group_root() != root) {
-          child->get_parents().remove_if([&] (const soinfo* parent) {
-            return parent == si;
-          });
           external_unload_list.push_back(child);
         } else if (child->get_parents().empty()) {
           unload_list.push_back(child);