alias crashing when trying to modify an alias #738

Closed
opened 2026-10-05 04:41:58 +02:00 by adam · 1 comment
Owner

I'm using the following 2 aliases on my ZNC instance

Actions for alias A2:
0   PRIVMSG #kaede !w higurashi %1%
1   PRIVMSG #kaede !ve higurashi %1+%
End of actions for alias A2.

Actions for alias A1:
0   PRIVMSG *alias clear a2
1   PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \%1%
2   PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \%1+%
End of actions for alias A1.

When I enter the command "/A1 higurashi no naku koro ni" my ZNC instance crashes until I boot it up again. This wouldn't work as I wish to anyway (refer to issue #1346) but it shouldn't completely crash my instance.

I'm using the following 2 aliases on my ZNC instance ``` Actions for alias A2: 0 PRIVMSG #kaede !w higurashi %1% 1 PRIVMSG #kaede !ve higurashi %1+% End of actions for alias A2. Actions for alias A1: 0 PRIVMSG *alias clear a2 1 PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \%1% 2 PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \%1+% End of actions for alias A1. ``` When I enter the command "/A1 higurashi no naku koro ni" my ZNC instance crashes until I boot it up again. This wouldn't work as I wish to anyway (refer to issue #1346) but it shouldn't completely crash my instance. <!-- github-sync-id:192292155 -->
adam closed this issue 2026-10-05 04:41:58 +02:00
Author
Owner

Yeah... that crashed my znc.

As far as I can tell, git head/master will just crash. 1.6.3 will execute the command then crash.

other@linux ~/znc $ ./znc -v
ZNC 1.7.x-git-705-2e6c8d9 - http://znc.in
IPv6: yes, SSL: yes, DNS: threads, charset: yes, build: autoconf, i18n: no

Before and after crash:

other@linux ~/znc $ cat ~/.znc/users/KindOne/moddata/alias/.registry
A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25;
A2 PRIVMSG%20;%23;kaede%20;%21;w%20;higurashi%20;%25;1%25;%0a;PRIVMSG%20;%23;kaede%20;%21;ve%20;higurashi%20;%25;1%2b;%25;
[2016-11-29 14:28:35.173139] (KindOne/freenode) CLI -> ZNC [A1 higurashi no naku koro ni]
[2016-11-29 14:28:35.174583] (KindOne/freenode) CLI -> ZNC [PRIVMSG *alias clear a2]
[2016-11-29 14:28:35.174857] (KindOne/freenode) ZNC -> CLI [:*alias!znc@znc.in PRIVMSG EvilOne :Alias does not exist.]

Thread 1 "znc" received signal SIGSEGV, Segmentation fault.
0xb55ff7fe in CAliasMod::OnUserRaw (this=0x8048ff80, sLine=...) at alias.cpp:374
374	                    m_pClient->ReadLine(rawLines[i]);
(gdb) bt full
#0  0xb55ff7fe in CAliasMod::OnUserRaw (this=0x8048ff80, sLine=...) at alias.cpp:374
        i = 1
        rawLines = std::__debug::vector of length 3, capacity 4 = {
          {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", 
            static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w higurashi no naku koro ni \\higurashi", static CaseSensitive = CaseSensitivity::CaseSensitive, 
            static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve higurashi no naku koro ni \\higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, 
            static CaseInsensitive = CaseSensitivity::CaseInsensitive}}
        current_alias = {parent = 0x8048ff80, 
          name = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1", 
            static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          alias_cmds = std::__debug::vector of length 3, capacity 4 = {
            {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", 
              static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
            {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \\%1%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
            {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \\%1+%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}}}
#1  0x802e1c6f in CModules::OnUserRaw (this=0x804869e8, sLine=...) at src/Modules.cpp:1237
        e = CModule::CONTINUE
        pOldClient = 0x0
        pOldUser = 0x0
        pNetwork = 0x0
        pMod = 0x8048ff80
        __for_range = @0x804869e8: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = {0x804887c8, 0x8048ff80}, m_pUser = 0x0, m_pNetwork = 0x8048cce0, m_pClient = 0x8048b0b8}
        __for_begin = 
        __for_end = 
        bHaltCore = false
#2  0x802b25e2 in CClient::ReadLine (this=0x8048b0b8, sData=...) at src/Client.cpp:112
        UMods = @0x804869e8: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = {
            0x804887c8, 0x8048ff80}, m_pUser = 0x0, m_pNetwork = 0x8048cce0, m_pClient = 0x8048b0b8}
        pOldUNetwork = 0x0
---Type <return> to continue, or q <return> to quit---
        pOldUClient = 0x0
        bGlobalExited = false
        bUserExited = false
        user_lang = {<No data fields>}
        sLine = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        mssTags = 
    {<std::__debug::map<CString, CString, std::less<CString>, std::allocator<std::pair<CString const, CString> > >> = std::__debug::map with 0 elements, _vptr.MCString = 0x8046d714 <vtable for MCString+8>, 
          static EmptyMap = {<std::__debug::map<CString, CString, std::less<CString>, std::allocator<std::pair<CString const, CString> > >> = std::__debug::map with 0 elements, _vptr.MCString = 0x8046d714 <vtable for MCString+8>, 
            static EmptyMap = <same as static member of an already seen type>}}
        bReturn = false
        Message = {m_Nick = {m_sChanPerms = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
              static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
            m_pNetwork = 0x80493be0, m_sNick = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
              static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
            m_sIdent = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
              static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
            m_sHost = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
              static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}}, 
          m_sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
            static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          m_vsParams = std::__debug::vector of length 89682143, capacity 0 = {<error reading variable>
        sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
#3  0x8020f17b in Csock::PushBuff (this=0x8048b0b8, 
    data=0x804a1c68 "A1 higurashi no naku koro ni\r\n[WHOIS other] +i]is nickname is registered. Please choose a different nickname, or identify via \002/msg NickServ identify <password>\002.\r\n:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,N"..., len=30, bStartAtZero=false)
    at src/Csocket.cpp:2381
        sBuff = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni\r\n", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        iFind = 29
        iStartPos = 0
#4  0x802127a1 in CSocketManager::Loop (this=0x80476a94) at src/Csocket.cpp:3458
        iLen = 4096
---Type <return> to continue, or q <return> to quit---
        cBuff = {
          m_pBuffer = 0x804a1c68 "A1 higurashi no naku koro ni\r\n[WHOIS other] +i]is nickname is registered. Please choose a different nickname, or identify via \002/msg NickServ identify <password>\002.\r\n:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,N"...}
        bytes = 30
        pcSock = 0x8048b0b8
        iErrno = CSocketManager::SUCCESS
        itSock = {first = , second = CSocketManager::SUCCESS}
        mpeSocks = std::__debug::map with 1 elements = {[0x8048b0b8] = CSocketManager::SUCCESS}
        iMilliNow = 0
#5  0x80212ba9 in CSocketManager::DynamicSelectLoop (this=0x80476a94, iLowerBounds=100000, iUpperBounds=300000000, iMaxResolution=3600)
    at src/Csocket.cpp:3516
No locals.
#6  0x80227377 in CZNC::Loop (this=0x80476a10) at src/znc.cpp:285
        sError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        eState = CZNC::ECONFIG_NOTHING
#7  0x801f1ad5 in main (argc=2, argv=0xbffff854) at src/main.cpp:525
        SignalHandler = std::unique_ptr<CSignalHandler> containing 0x804884f0
        iRet = 0
        sConfig = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        sDataDir = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        iArg = -1
        iOptIndex = -1
        bMakeConf = false
        bMakePass = false
        bAllowRoot = false
        bForeground = true
        bMakePem = false
        pZNC = 0x80476a10
        sConfigError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", 
          static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}

1.6.3

other@linux ~/znc-1.6.3-no-ssl $ ./znc -v
ZNC 1.6.3 - http://znc.in
IPv6: yes, SSL: no, DNS: threads, charset: yes

Before crash:

other@linux ~/znc-1.6.3-no-ssl $ cat ~/.znc/users/KindOne/moddata/alias/.registry
A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25;
A2 PRIVMSG%20;%23;kaede%20;%21;w%20;higurashi%20;%25;1%25;%0a;PRIVMSG%20;%23;kaede%20;%21;ve%20;higurashi%20;%25;1%2b;%25;

After crash:

other@linux ~/znc-1.6.3-no-ssl $ cat ~/.znc/users/KindOne/moddata/alias/.registry 
A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25;
A2
[2016-11-29 14:51:02.156085] (KindOne/freenode) CLI -> ZNC [A1 higurashi no naku koro ni]
[2016-11-29 14:51:02.157561] (KindOne/freenode) CLI -> ZNC [PRIVMSG *alias clear a2]
[2016-11-29 14:51:02.158497] (KindOne/freenode) ZNC -> CLI [:*alias!znc@znc.in PRIVMSG other :Modified alias.]

Program received signal SIGSEGV, Segmentation fault.
0xb60d7214 in CAliasMod::OnUserRaw (this=0x80411cb8, sLine=...) at alias.cpp:324
324						m_pClient->ReadLine(rawLines[i]);
(gdb) bt full
#0  0xb60d7214 in CAliasMod::OnUserRaw (this=0x80411cb8, sLine=...) at alias.cpp:324
        i = 1
        rawLines = std::__debug::vector of length 3, capacity 4 = {{<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, 
            static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w higurashi no naku koro ni \\higurashi", 
            static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve higurashi no naku koro ni \\higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, 
            static CaseInsensitive = CaseSensitivity::CaseInsensitive}}
        current_alias = {parent = 0x80411cb8, name = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, 
          alias_cmds = std::__debug::vector of length 3, capacity 4 = {{<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, 
              static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \\%1%", static CaseSensitive = CaseSensitivity::CaseSensitive, 
              static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \\%1+%", static CaseSensitive = CaseSensitivity::CaseSensitive, 
              static CaseInsensitive = CaseSensitivity::CaseInsensitive}}}
#1  0x802984b6 in CModules::OnUserRaw (this=0x8040f378, sLine=...) at src/Modules.cpp:848
        pMod = 0x80411cb8
        e = CModule::CONTINUE
        pOldClient = 0x0
        pOldUser = 0x0
        pNetwork = 0x0
        a = 1
        bHaltCore = false
#2  0x8026bc2b in CClient::ReadLine (this=0x80412d68, sData=...) at src/Client.cpp:105
        UMods = @0x8040f378: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = {0x80410f60, 0x80411cb8}, m_pUser = 0x0, m_pNetwork = 0x8040d358, m_pClient = 0x80412d68}
        pOldUNetwork = 0x0
        pOldUClient = 0x0
        bGlobalExited = false
        bUserExited = false
        sLine = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        bReturn = false
        sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
#3  0x801cde35 in Csock::PushBuff (this=0x80412d68, data=0x80413fc0 "A1 higurashi no naku koro ni\r\nhunter2\r\nNICK other\r\nUSER other other localhost :\003\064,8loldongs\003\r\noice.so", len=30, bStartAtZero=false) at src/Csocket.cpp:2326
        sBuff = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni\r\n", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        iFind = 29
        iStartPos = 0
#4  0x801d09bc in CSocketManager::Loop (this=0x8040ba7c) at src/Csocket.cpp:3364
        iLen = 4096
        cBuff = {m_pBuffer = 0x80413fc0 "A1 higurashi no naku koro ni\r\nhunter2\r\nNICK other\r\nUSER other other localhost :\003\064,8loldongs\003\r\noice.so"}
---Type <return> to continue, or q <return> to quit---
        bytes = 30
        pcSock = 0x80412d68
        iErrno = CSocketManager::SUCCESS
        itSock = {first = , second = CSocketManager::SUCCESS}
        mpeSocks = std::__debug::map with 1 elements = {[0x80412d68] = CSocketManager::SUCCESS}
        iMilliNow = 0
#5  0x801d0d8d in CSocketManager::DynamicSelectLoop (this=0x8040ba7c, iLowerBounds=100000, iUpperBounds=600000000, iMaxResolution=3600) at src/Csocket.cpp:3422
No locals.
#6  0x801e757c in CZNC::Loop (this=0x8040ba10) at src/znc.cpp:221
        sError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        eState = CZNC::ECONFIG_NOTHING
#7  0x801b81ab in main (argc=2, argv=0xbffff824) at src/main.cpp:414
        sa = {__sigaction_handler = {sa_handler = 0x801b6b09 <die(int)>, sa_sigaction = 0x801b6b09 <die(int)>}, sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = -2147483648, sa_restorer = 0xbffff638}
        iRet = 0
        sConfig = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        sDataDir = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
        iArg = -1
        iOptIndex = -1
        bMakeConf = false
        bMakePass = false
        bAllowRoot = false
        bForeground = true
        pZNC = 0x8040ba10
        sConfigError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}
Yeah... that crashed my znc. As far as I can tell, git head/master will just crash. 1.6.3 will execute the command then crash. ``` other@linux ~/znc $ ./znc -v ZNC 1.7.x-git-705-2e6c8d9 - http://znc.in IPv6: yes, SSL: yes, DNS: threads, charset: yes, build: autoconf, i18n: no ``` Before and after crash: ``` other@linux ~/znc $ cat ~/.znc/users/KindOne/moddata/alias/.registry A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25; A2 PRIVMSG%20;%23;kaede%20;%21;w%20;higurashi%20;%25;1%25;%0a;PRIVMSG%20;%23;kaede%20;%21;ve%20;higurashi%20;%25;1%2b;%25; ``` ``` [2016-11-29 14:28:35.173139] (KindOne/freenode) CLI -> ZNC [A1 higurashi no naku koro ni] [2016-11-29 14:28:35.174583] (KindOne/freenode) CLI -> ZNC [PRIVMSG *alias clear a2] [2016-11-29 14:28:35.174857] (KindOne/freenode) ZNC -> CLI [:*alias!znc@znc.in PRIVMSG EvilOne :Alias does not exist.] Thread 1 "znc" received signal SIGSEGV, Segmentation fault. 0xb55ff7fe in CAliasMod::OnUserRaw (this=0x8048ff80, sLine=...) at alias.cpp:374 374 m_pClient->ReadLine(rawLines[i]); (gdb) bt full #0 0xb55ff7fe in CAliasMod::OnUserRaw (this=0x8048ff80, sLine=...) at alias.cpp:374 i = 1 rawLines = std::__debug::vector of length 3, capacity 4 = { {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w higurashi no naku koro ni \\higurashi", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve higurashi no naku koro ni \\higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}} current_alias = {parent = 0x8048ff80, name = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, alias_cmds = std::__debug::vector of length 3, capacity 4 = { {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \\%1%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \\%1+%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}}} #1 0x802e1c6f in CModules::OnUserRaw (this=0x804869e8, sLine=...) at src/Modules.cpp:1237 e = CModule::CONTINUE pOldClient = 0x0 pOldUser = 0x0 pNetwork = 0x0 pMod = 0x8048ff80 __for_range = @0x804869e8: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = {0x804887c8, 0x8048ff80}, m_pUser = 0x0, m_pNetwork = 0x8048cce0, m_pClient = 0x8048b0b8} __for_begin = __for_end = bHaltCore = false #2 0x802b25e2 in CClient::ReadLine (this=0x8048b0b8, sData=...) at src/Client.cpp:112 UMods = @0x804869e8: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = { 0x804887c8, 0x8048ff80}, m_pUser = 0x0, m_pNetwork = 0x8048cce0, m_pClient = 0x8048b0b8} pOldUNetwork = 0x0 ---Type <return> to continue, or q <return> to quit--- pOldUClient = 0x0 bGlobalExited = false bUserExited = false user_lang = {<No data fields>} sLine = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} mssTags = {<std::__debug::map<CString, CString, std::less<CString>, std::allocator<std::pair<CString const, CString> > >> = std::__debug::map with 0 elements, _vptr.MCString = 0x8046d714 <vtable for MCString+8>, static EmptyMap = {<std::__debug::map<CString, CString, std::less<CString>, std::allocator<std::pair<CString const, CString> > >> = std::__debug::map with 0 elements, _vptr.MCString = 0x8046d714 <vtable for MCString+8>, static EmptyMap = <same as static member of an already seen type>}} bReturn = false Message = {m_Nick = {m_sChanPerms = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, m_pNetwork = 0x80493be0, m_sNick = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, m_sIdent = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, m_sHost = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}}, m_sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, m_vsParams = std::__debug::vector of length 89682143, capacity 0 = {<error reading variable> sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} #3 0x8020f17b in Csock::PushBuff (this=0x8048b0b8, data=0x804a1c68 "A1 higurashi no naku koro ni\r\n[WHOIS other] +i]is nickname is registered. Please choose a different nickname, or identify via \002/msg NickServ identify <password>\002.\r\n:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,N"..., len=30, bStartAtZero=false) at src/Csocket.cpp:2381 sBuff = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni\r\n", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} iFind = 29 iStartPos = 0 #4 0x802127a1 in CSocketManager::Loop (this=0x80476a94) at src/Csocket.cpp:3458 iLen = 4096 ---Type <return> to continue, or q <return> to quit--- cBuff = { m_pBuffer = 0x804a1c68 "A1 higurashi no naku koro ni\r\n[WHOIS other] +i]is nickname is registered. Please choose a different nickname, or identify via \002/msg NickServ identify <password>\002.\r\n:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,N"...} bytes = 30 pcSock = 0x8048b0b8 iErrno = CSocketManager::SUCCESS itSock = {first = , second = CSocketManager::SUCCESS} mpeSocks = std::__debug::map with 1 elements = {[0x8048b0b8] = CSocketManager::SUCCESS} iMilliNow = 0 #5 0x80212ba9 in CSocketManager::DynamicSelectLoop (this=0x80476a94, iLowerBounds=100000, iUpperBounds=300000000, iMaxResolution=3600) at src/Csocket.cpp:3516 No locals. #6 0x80227377 in CZNC::Loop (this=0x80476a10) at src/znc.cpp:285 sError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} eState = CZNC::ECONFIG_NOTHING #7 0x801f1ad5 in main (argc=2, argv=0xbffff854) at src/main.cpp:525 SignalHandler = std::unique_ptr<CSignalHandler> containing 0x804884f0 iRet = 0 sConfig = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} sDataDir = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} iArg = -1 iOptIndex = -1 bMakeConf = false bMakePass = false bAllowRoot = false bForeground = true bMakePem = false pZNC = 0x80476a10 sConfigError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} ``` ----------------------------------- 1.6.3 ``` other@linux ~/znc-1.6.3-no-ssl $ ./znc -v ZNC 1.6.3 - http://znc.in IPv6: yes, SSL: no, DNS: threads, charset: yes ``` Before crash: ``` other@linux ~/znc-1.6.3-no-ssl $ cat ~/.znc/users/KindOne/moddata/alias/.registry A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25; A2 PRIVMSG%20;%23;kaede%20;%21;w%20;higurashi%20;%25;1%25;%0a;PRIVMSG%20;%23;kaede%20;%21;ve%20;higurashi%20;%25;1%2b;%25; ``` After crash: ``` other@linux ~/znc-1.6.3-no-ssl $ cat ~/.znc/users/KindOne/moddata/alias/.registry A1 PRIVMSG%20;%2a;alias%20;clear%20;a2%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;w%20;%25;1%2b;%25;%20;%5c;%25;1%25;%0a;PRIVMSG%20;%2a;alias%20;add%20;a2%20;PRIVMSG%20;%23;kaede%20;%21;ve%20;%25;1%2b;%25;%20;%5c;%25;1%2b;%25; A2 ``` ``` [2016-11-29 14:51:02.156085] (KindOne/freenode) CLI -> ZNC [A1 higurashi no naku koro ni] [2016-11-29 14:51:02.157561] (KindOne/freenode) CLI -> ZNC [PRIVMSG *alias clear a2] [2016-11-29 14:51:02.158497] (KindOne/freenode) ZNC -> CLI [:*alias!znc@znc.in PRIVMSG other :Modified alias.] Program received signal SIGSEGV, Segmentation fault. 0xb60d7214 in CAliasMod::OnUserRaw (this=0x80411cb8, sLine=...) at alias.cpp:324 324 m_pClient->ReadLine(rawLines[i]); (gdb) bt full #0 0xb60d7214 in CAliasMod::OnUserRaw (this=0x80411cb8, sLine=...) at alias.cpp:324 i = 1 rawLines = std::__debug::vector of length 3, capacity 4 = {{<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w higurashi no naku koro ni \\higurashi", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve higurashi no naku koro ni \\higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}} current_alias = {parent = 0x80411cb8, name = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, alias_cmds = std::__debug::vector of length 3, capacity 4 = {{<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias clear a2", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !w %1+% \\%1%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}, {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG *alias add a2 PRIVMSG #kaede !ve %1+% \\%1+%", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive}}} #1 0x802984b6 in CModules::OnUserRaw (this=0x8040f378, sLine=...) at src/Modules.cpp:848 pMod = 0x80411cb8 e = CModule::CONTINUE pOldClient = 0x0 pOldUser = 0x0 pNetwork = 0x0 a = 1 bHaltCore = false #2 0x8026bc2b in CClient::ReadLine (this=0x80412d68, sData=...) at src/Client.cpp:105 UMods = @0x8040f378: {<std::__debug::vector<CModule*, std::allocator<CModule*> >> = std::__debug::vector of length 2, capacity 2 = {0x80410f60, 0x80411cb8}, m_pUser = 0x0, m_pNetwork = 0x8040d358, m_pClient = 0x80412d68} pOldUNetwork = 0x0 pOldUClient = 0x0 bGlobalExited = false bUserExited = false sLine = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} bReturn = false sCommand = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "PRIVMSG", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} #3 0x801cde35 in Csock::PushBuff (this=0x80412d68, data=0x80413fc0 "A1 higurashi no naku koro ni\r\nhunter2\r\nNICK other\r\nUSER other other localhost :\003\064,8loldongs\003\r\noice.so", len=30, bStartAtZero=false) at src/Csocket.cpp:2326 sBuff = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "A1 higurashi no naku koro ni\r\n", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} iFind = 29 iStartPos = 0 #4 0x801d09bc in CSocketManager::Loop (this=0x8040ba7c) at src/Csocket.cpp:3364 iLen = 4096 cBuff = {m_pBuffer = 0x80413fc0 "A1 higurashi no naku koro ni\r\nhunter2\r\nNICK other\r\nUSER other other localhost :\003\064,8loldongs\003\r\noice.so"} ---Type <return> to continue, or q <return> to quit--- bytes = 30 pcSock = 0x80412d68 iErrno = CSocketManager::SUCCESS itSock = {first = , second = CSocketManager::SUCCESS} mpeSocks = std::__debug::map with 1 elements = {[0x80412d68] = CSocketManager::SUCCESS} iMilliNow = 0 #5 0x801d0d8d in CSocketManager::DynamicSelectLoop (this=0x8040ba7c, iLowerBounds=100000, iUpperBounds=600000000, iMaxResolution=3600) at src/Csocket.cpp:3422 No locals. #6 0x801e757c in CZNC::Loop (this=0x8040ba10) at src/znc.cpp:221 sError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} eState = CZNC::ECONFIG_NOTHING #7 0x801b81ab in main (argc=2, argv=0xbffff824) at src/main.cpp:414 sa = {__sigaction_handler = {sa_handler = 0x801b6b09 <die(int)>, sa_sigaction = 0x801b6b09 <die(int)>}, sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = -2147483648, sa_restorer = 0xbffff638} iRet = 0 sConfig = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} sDataDir = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} iArg = -1 iOptIndex = -1 bMakeConf = false bMakePass = false bAllowRoot = false bForeground = true pZNC = 0x8040ba10 sConfigError = {<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> = "", static CaseSensitive = CaseSensitivity::CaseSensitive, static CaseInsensitive = CaseSensitivity::CaseInsensitive} ``` <!-- github-comment-id:263662542 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#738