Skip to content

Commit f633284

Browse files
committed
std: Fix a segfault on OSX with backtraces
Apparently `dladdr` can succeed but still give you NULL pointers! Closes #44379
1 parent 2f1ef9e commit f633284

File tree

1 file changed

+2
-1
lines changed
  • src/libstd/sys/unix/backtrace/printing

1 file changed

+2
-1
lines changed

src/libstd/sys/unix/backtrace/printing/dladdr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ pub fn resolve_symname<F>(frame: Frame,
2222
{
2323
unsafe {
2424
let mut info: Dl_info = intrinsics::init();
25-
let symname = if dladdr(frame.exact_position, &mut info) == 0 {
25+
let symname = if dladdr(frame.exact_position, &mut info) == 0 ||
26+
info.dli_sname.is_null() {
2627
None
2728
} else {
2829
CStr::from_ptr(info.dli_sname).to_str().ok()

0 commit comments

Comments
 (0)