Bug 1812757

Summary: dlopen()ing a DT_FILTER library crashes if filtee has constructor
Product: Red Hat Enterprise Linux 8 Reporter: Divya <dbasant>
Component: glibcAssignee: glibc team <glibc-bugzilla>
Status: CLOSED DUPLICATE QA Contact: qe-baseos-tools-bugs
Severity: high Docs Contact:
Priority: high    
Version: 8.1CC: ashankar, codonell, dj, fweimer, mnewsome, pfrankli, sipoyare
Target Milestone: rcKeywords: Patch
Target Release: 8.0   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-12 21:13:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Divya 2020-03-12 05:34:21 UTC
Description of problem:
Linking DSOs with  g++ --Wl,--filter=someDSO.so, and DSO produced can't be dlopened or feeded to ldd

$  ldd someDSO.so
Inconsistency detected by ld.so: dl-deps.c: 553: _dl_map_object_deps: Assertion `map->l_searchlist.r_list[0] == map' failed!


Version-Release number of selected component (if applicable):
glibc-2.28

How reproducible:
Always

Steps to Reproduce:
1. Set  DT_FILTER to a shared library as below: 

$ g++ --Wl,--filter=someDSO.so

2. Load the library using dlopen or just do ldd on it: 

$  ldd someDSO.so
Inconsistency detected by ld.so: dl-deps.c: 553: _dl_map_object_deps: Assertion `map->l_searchlist.r_list[0] == map' failed!



Actual results:
Crashes with Assertion message as below: 
Inconsistency detected by ld.so: dl-deps.c: 553: _dl_map_object_deps: Assertion `map->l_searchlist.r_list[0] == map' failed!

Expected results:
Library should load without any error/problem with DT_FILTER set to it.

Additional info:
Issue is reported in upstream at https://sourceware.org/bugzilla/show_bug.cgi?id=16272. 

I had provided a test package to the customer including fix from the upstream bugzilla and customer has confirmed that it fixes the issue.

Comment 1 Carlos O'Donell 2020-03-12 21:13:08 UTC

*** This bug has been marked as a duplicate of bug 1812756 ***