Print

Print


Hi guys,

I did some investigation and it turns out that gdb is not pointing to the right  line ;-)

I've rebuilt xrootd with -DCMAKE_BUILD_TYPE=Debug and it makes it much easier to pinpoint the problem, here's the proper backtrace:

#0  0x00007ffff6af22bc in XrdCryptoX509ChainNode::Cert (this=0x0) at /home/simonm/xrootd/src/./XrdCrypto/XrdCryptoX509Chain.hh:73
#1  0x00007ffff68bc9d8 in XrdCryptogsiX509Chain::Verify (this=0x66a510, errcode=@0x7fffffff95fc, vopt=0x0) at /home/simonm/xrootd/src/XrdCrypto/XrdCryptogsiX509Chain.cc:130
#2  0x00007ffff6aeae16 in XrdSecProtocolgsi::VerifyCA (opt=2, cca=0x66a510, CF=0x7ffff68a6280) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:4255
#3  0x00007ffff6aebc75 in XrdSecProtocolgsi::GetCA (cahash=0x669c90 "5168735f.0", cf=0x7ffff68a6280, hs=0x0) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:4402
#4  0x00007ffff6af022b in XrdSecProtocolgsi::GetSrvCertEnt (pfeRef=..., cf=0x7ffff68a6280, timestamp=1487079184, certcalist=...) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:5381
#5  0x00007ffff6ad5c6d in XrdSecProtocolgsi::Init (opt=..., erp=0x7fffffffb7a0) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:653
#6  0x00007ffff6ae299a in XrdSecProtocolgsiInit (mode=115 's', parms=0x63e8f0 " -crl:3 -cert:/home/simonm/newcert/xrd/xrdcert.pem -key:/home/simonm/newcert/xrd/xrdkey.pem -md:sha256:sha1 -ca:2 -gmapopt:10", erp=0x7fffffffb7a0)
    at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:2674
#7  0x00007ffff6d069a9 in XrdSecPManager::ldPO (this=0x7ffff6f0f780, eMsg=0x7fffffffb7a0, pmode=115 's', pid=0x7fffffffc430 "gsi", parg=0x63e8f0 " -crl:3 -cert:/home/simonm/newcert/xrd/xrdcert.pem -key:/home/simonm/newcert/xrd/xrdkey.pem -md:sha256:sha1 -ca:2 -gmapopt:10", 
    spath=0x7fffffffbfe0 "/home/simonm/xrootd/build/src") at /home/simonm/xrootd/src/XrdSec/XrdSecPManager.cc:333
#8  0x00007ffff6d0a9e1 in XrdSecPManager::Load (this=0x7ffff6f0f780, eMsg=0x7fffffffb7a0, pmode=115 's', pid=0x7fffffffc430 "gsi", parg=0x63e8f0 " -crl:3 -cert:/home/simonm/newcert/xrd/xrdcert.pem -key:/home/simonm/newcert/xrd/xrdkey.pem -md:sha256:sha1 -ca:2 -gmapopt:10", 
    path=0x7fffffffbfe0 "/home/simonm/xrootd/build/src") at /home/simonm/xrootd/src/./XrdSec/XrdSecPManager.hh:74
#9  0x00007ffff6d09b1f in XrdSecServer::xprot (this=0x6384f0, Config=..., Eroute=...) at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:838
#10 0x00007ffff6d08c4e in XrdSecServer::ConfigXeq (this=0x6384f0, var=0x6389e4 "popt:10", Config=..., Eroute=...) at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:553
#11 0x00007ffff6d08974 in XrdSecServer::ConfigFile (this=0x6384f0, ConfigFN=0x624c40 "/home/simonm/xrootd-dpm.cfg") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:508
#12 0x00007ffff6d0849d in XrdSecServer::Configure (this=0x6384f0, cfn=0x624c40 "/home/simonm/xrootd-dpm.cfg") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:415
#13 0x00007ffff6d0a5cc in XrdSecgetService (lp=0x614598, cfn=0x624c40 "/home/simonm/xrootd-dpm.cfg") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:1060
#14 0x00007ffff7ad028a in (anonymous namespace)::Load (eBuff=0x0, eBlen=0, cfn=0x624c40 "/home/simonm/xrootd-dpm.cfg", seclib=0x633dd0 "/home/simonm/xrootd/build/src/libXrdSec.so", getP=0x7fffffffc878, secP=0x7fffffffc828, eDest=0x7ffff7ff4820)
    at /home/simonm/xrootd/src/XrdSec/XrdSecLoadSecurity.cc:118
#15 0x00007ffff7ad0801 in XrdSecLoadSecService (eDest=0x7ffff7ff4820, cfn=0x624c40 "/home/simonm/xrootd-dpm.cfg", seclib=0x633dd0 "/home/simonm/xrootd/build/src/libXrdSec.so", getP=0x7fffffffc878, proP=0x7ffff7ff47f8) at /home/simonm/xrootd/src/XrdSec/XrdSecLoadSecurity.cc:288
#16 0x00007ffff7d4be33 in XrdXrootdProtocol::ConfigSecurity (xEnv=..., cfn=0x624c40 "/home/simonm/xrootd-dpm.cfg") at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdConfig.cc:549
#17 0x00007ffff7d4a3f6 in XrdXrootdProtocol::Configure (parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdConfig.cc:258
#18 0x00007ffff7d59edb in XrdgetProtocol (pname=0x624ef0 "xrootd", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdProtocol.cc:161
#19 0x000000000040e95f in XrdProtLoad::getProtocol (lname=0x0, pname=0x624ef0 "xrootd", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/Xrd/XrdProtLoad.cc:247
#20 0x000000000040e3af in XrdProtLoad::Load (lname=0x0, pname=0x624ef0 "xrootd", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/Xrd/XrdProtLoad.cc:101
#21 0x000000000040ad93 in XrdConfig::Setup (this=0x6144a0, dfltp=0x7fffffffe6cf "xrootd") at /home/simonm/xrootd/src/Xrd/XrdConfig.cc:1038
#22 0x0000000000408f1d in XrdConfig::Configure (this=0x6144a0, argc=3, argv=0x7fffffffe448) at /home/simonm/xrootd/src/Xrd/XrdConfig.cc:520
#23 0x000000000040fcea in main (argc=3, argv=0x7fffffffe448) at /home/simonm/xrootd/src/Xrd/XrdMain.cc:179

the problem is in line 129:
https://github.com/xrootd/xrootd/blob/master/src/XrdCrypto/XrdCryptogsiX509Chain.cc#L129

we do:
> node = node->Next();
but the linked list has been already rewinded until the end in the loop in line 105:
https://github.com/xrootd/xrootd/blob/master/src/XrdCrypto/XrdCryptogsiX509Chain.cc#L105

so node gets assigned with null, and since in the next line we do:
> node->Cert();
we are getting a segfault.

@gganis could you verify?

Cheers,
Michal


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/463#issuecomment-279710037

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1