diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index cae48f49b5..b6e7013034 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -561,12 +561,11 @@ impl Linker { let _ = self.objects.remove(&obj.id).unwrap(); for dep in obj.dependencies() { - self.unload(ObjectHandle::new( - self.objects - .get(self.name_to_object_id_map.get(*dep).unwrap()) - .unwrap() - .clone(), - )); + if let Some(name) = self.name_to_object_id_map.get(*dep) { + if let Some(object_name) = self.objects.get(name) { + self.unload(ObjectHandle::new(object_name.clone())); + } + } } self.name_to_object_id_map.remove(&obj.name); assert!(Arc::strong_count(&obj) == 1);