Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Segmentation fault in _dl_runtime_resolve()

I am doing simple string operations in the code where i am getting a segmention fault. I could not get what the exact problem is. Please take a look if someone can help.

The backtrace of the core is

(gdb) bt
#0  0x00007f595dee41da in _dl_fixup () from /lib64/ld-linux-x86-64.so.2
#1  0x00007f595deea105 in _dl_runtime_resolve () from /lib64/ld-linux-x86-64.so.2
#2  0x0000000000401d04 in getNodeInfo (node=0x7fffbfb4ba83 "TCU-0")
    at hwdetails.cpp:294
#3  0x0000000000402178 in main (argc=3, argv=0x7fffbfb4aef8)
    at hwdetails.cpp:369

At line 294 the crash is coming where the cout statement is there.
LdapDN is char * and is not NULL.

if ( Epath && (Epath->Entry[0].EntityType == SAHPI_ENT_UNSPECIFIED ||
         Epath->Entry[0].EntityType == SAHPI_ENT_ROOT )) {
        // nothing is mapped. Degrade the ldap dn path to slot.
        if(LdapDN){
            std::cout << "LdapDN " << LdapDN << std::endl;
        }
        std::string ldapDN;
        ldapDN = LdapDN;
        std::string slot = LDAP_PIU_ID;
        if ( ldapDN.compare(0, slot.length(), slot) != 0 ) {
            size_t pos = ldapDN.find(slot);
            if ( pos != std::string::npos ) {
                ldapDN = ldapDN.substr(pos);
                LdapDN = (char *)ldapDN.c_str();
                //getEntityPathFromLdapDn(ldapDN.c_str(), epath, domid);
            }
        }
     }
like image 406
mandeep Avatar asked Dec 21 '22 21:12

mandeep


1 Answers

A crash in _dl_fixup generally means that you have corrupted the state of runtime loader.

The two most common causes are:

  1. Heap corruption (overflow) or
  2. Mismatched parts of glibc itself.

If you are not setting e.g. LD_LIBRARY_PATH to point to a non-standard glibc, then we can forget about reason #2.

For #1, run your program under Valgrind, and make sure it detects no errors.

If in fact it doesn't, use disas and info registers GDB commands, update your question with their output, and you may receive additional help.

like image 127
Employed Russian Avatar answered Dec 24 '22 01:12

Employed Russian