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, view it on GitHub, or mute the thread.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/xrootd/xrootd","title":"xrootd/xrootd","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/xrootd/xrootd"}},"updates":{"snippets":[{"icon":"PERSON","message":"@simonmichal in #463: Hi guys,\r\n\r\nI did some investigation and it turns out that gdb is not pointing to the right line ;-)\r\n\r\nI've rebuilt xrootd with -DCMAKE_BUILD_TYPE=Debug and it makes it much easier to pinpoint the problem, here's the proper backtrace:\r\n\r\n#0 0x00007ffff6af22bc in XrdCryptoX509ChainNode::Cert (this=0x0) at /home/simonm/xrootd/src/./XrdCrypto/XrdCryptoX509Chain.hh:73\r\n#1 0x00007ffff68bc9d8 in XrdCryptogsiX509Chain::Verify (this=0x66a510, errcode=@0x7fffffff95fc, vopt=0x0) at /home/simonm/xrootd/src/XrdCrypto/XrdCryptogsiX509Chain.cc:130\r\n#2 0x00007ffff6aeae16 in XrdSecProtocolgsi::VerifyCA (opt=2, cca=0x66a510, CF=0x7ffff68a6280) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:4255\r\n#3 0x00007ffff6aebc75 in XrdSecProtocolgsi::GetCA (cahash=0x669c90 \"5168735f.0\", cf=0x7ffff68a6280, hs=0x0) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:4402\r\n#4 0x00007ffff6af022b in XrdSecProtocolgsi::GetSrvCertEnt (pfeRef=..., cf=0x7ffff68a6280, timestamp=1487079184, certcalist=...) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:5381\r\n#5 0x00007ffff6ad5c6d in XrdSecProtocolgsi::Init (opt=..., erp=0x7fffffffb7a0) at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:653\r\n#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)\r\n at /home/simonm/xrootd/src/XrdSecgsi/XrdSecProtocolgsi.cc:2674\r\n#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\", \r\n spath=0x7fffffffbfe0 \"/home/simonm/xrootd/build/src\") at /home/simonm/xrootd/src/XrdSec/XrdSecPManager.cc:333\r\n#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\", \r\n path=0x7fffffffbfe0 \"/home/simonm/xrootd/build/src\") at /home/simonm/xrootd/src/./XrdSec/XrdSecPManager.hh:74\r\n#9 0x00007ffff6d09b1f in XrdSecServer::xprot (this=0x6384f0, Config=..., Eroute=...) at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:838\r\n#10 0x00007ffff6d08c4e in XrdSecServer::ConfigXeq (this=0x6384f0, var=0x6389e4 \"popt:10\", Config=..., Eroute=...) at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:553\r\n#11 0x00007ffff6d08974 in XrdSecServer::ConfigFile (this=0x6384f0, ConfigFN=0x624c40 \"/home/simonm/xrootd-dpm.cfg\") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:508\r\n#12 0x00007ffff6d0849d in XrdSecServer::Configure (this=0x6384f0, cfn=0x624c40 \"/home/simonm/xrootd-dpm.cfg\") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:415\r\n#13 0x00007ffff6d0a5cc in XrdSecgetService (lp=0x614598, cfn=0x624c40 \"/home/simonm/xrootd-dpm.cfg\") at /home/simonm/xrootd/src/XrdSec/XrdSecServer.cc:1060\r\n#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)\r\n at /home/simonm/xrootd/src/XrdSec/XrdSecLoadSecurity.cc:118\r\n#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\r\n#16 0x00007ffff7d4be33 in XrdXrootdProtocol::ConfigSecurity (xEnv=..., cfn=0x624c40 \"/home/simonm/xrootd-dpm.cfg\") at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdConfig.cc:549\r\n#17 0x00007ffff7d4a3f6 in XrdXrootdProtocol::Configure (parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdConfig.cc:258\r\n#18 0x00007ffff7d59edb in XrdgetProtocol (pname=0x624ef0 \"xrootd\", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/XrdXrootd/XrdXrootdProtocol.cc:161\r\n#19 0x000000000040e95f in XrdProtLoad::getProtocol (lname=0x0, pname=0x624ef0 \"xrootd\", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/Xrd/XrdProtLoad.cc:247\r\n#20 0x000000000040e3af in XrdProtLoad::Load (lname=0x0, pname=0x624ef0 \"xrootd\", parms=0x0, pi=0x6144a0) at /home/simonm/xrootd/src/Xrd/XrdProtLoad.cc:101\r\n#21 0x000000000040ad93 in XrdConfig::Setup (this=0x6144a0, dfltp=0x7fffffffe6cf \"xrootd\") at /home/simonm/xrootd/src/Xrd/XrdConfig.cc:1038\r\n#22 0x0000000000408f1d in XrdConfig::Configure (this=0x6144a0, argc=3, argv=0x7fffffffe448) at /home/simonm/xrootd/src/Xrd/XrdConfig.cc:520\r\n#23 0x000000000040fcea in main (argc=3, argv=0x7fffffffe448) at /home/simonm/xrootd/src/Xrd/XrdMain.cc:179\r\n\r\nthe problem is in line 129:\r\nhttps://github.com/xrootd/xrootd/blob/master/src/XrdCrypto/XrdCryptogsiX509Chain.cc#L129\r\n\r\nwe do:\r\n\u003e node = node-\u003eNext();\r\nbut the linked list has been already rewinded until the end in the loop in line 105:\r\nhttps://github.com/xrootd/xrootd/blob/master/src/XrdCrypto/XrdCryptogsiX509Chain.cc#L105\r\n\r\nso node gets assigned with null, and since in the next line we do:\r\n\u003e node-\u003eCert();\r\nwe are getting a segfault.\r\n\r\n@gganis could you verify?\r\n\r\nCheers,\r\nMichal\r\n"}],"action":{"name":"View Issue","url":"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