From af50d18d164e72063fedf2d97fac6fa6c845eaf1 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 9 Jan 2025 13:33:29 -0700 Subject: [PATCH] Return error instead of panic when load_library cannot find root DSO --- src/ld_so/linker.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index 6f26cd3dcc..61eba61f9a 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -396,7 +396,7 @@ impl Linker { noload: bool, ) -> Result { trace!( - "[ld.so] dlopen({:?}, {:#?}, {:#?}, noload={})", + "[ld.so] load_library(name={:?}, resolve={:#?}, scope={:#?}, noload={})", name, resolve, scope, @@ -455,12 +455,10 @@ impl Linker { } } - None => Ok(ObjectHandle::new( - self.objects - .get(&ROOT_ID) - .expect("root object missing") - .clone(), - )), + None => match self.objects.get(&ROOT_ID) { + Some(obj) => Ok(ObjectHandle::new(obj.clone())), + None => Err(DlError::NotFound), + }, } }