NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bin/60422: ldd, rtld: crash inside assertion if needed object not found
>Number: 60422
>Category: bin
>Synopsis: ldd, rtld: crash inside assertion if needed object not found
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bin-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jul 07 13:40:01 +0000 2026
>Originator: Taylor R Campbell
>Release: current, 11
>Organization:
The NetLDD Notfoundandcrashed, Inc.
>Environment:
>Description:
assert((*needed)->obj == NULL);
(*needed)->obj = _rtld_load_library(name, obj, flags, mask);
assert((*needed)->obj->refcount > 0);
return ((*needed)->obj != NULL);
(*needed)->obj may be null at the point we dereference it.
>How-To-Repeat:
mv /usr/lib/libroken.so.20 /usr/lib/libroken.so.20.hidden
ldd /usr/bin/kinit
>Fix:
--- src/libexec/ld.elf_so/load.c
+++ src/libexec/ld.elf_so/load.c
@@ -338,7 +338,7 @@
assert((*needed)->obj == NULL);
(*needed)->obj = _rtld_load_library(name, obj, flags, mask);
- assert((*needed)->obj->refcount > 0);
+ assert((*needed)->obj == NULL || (*needed)->obj->refcount > 0);
return ((*needed)->obj != NULL);
}
Home |
Main Index |
Thread Index |
Old Index