[Bro-Dev] [JIRA] (BIT-1176) Using an undefined function in a when statement causes a segfault

Bernhard Amann (JIRA) jira at bro-tracker.atlassian.net
Fri Apr 4 06:26:07 PDT 2014


Bernhard Amann created BIT-1176:
-----------------------------------

             Summary: Using an undefined function in a when statement causes a segfault
                 Key: BIT-1176
                 URL: https://bro-tracker.atlassian.net/browse/BIT-1176
             Project: Bro Issue Tracker
          Issue Type: Problem
          Components: Bro
    Affects Versions: git/master
            Reporter: Bernhard Amann
             Fix For: 2.3
         Attachments: crashme.bro

Running the following script crashes bro with a null-pointer exception:

{code:title=crashMe.bro}
global crashMe: function():string;

when( local result = crashMe() ) {
  print result;
}
{code}

Backtrace:
{code}
* thread #1: tid = 0x226111, 0x000000010022bddf bro`Val::IsZero(this=0x0000000000000000) const + 15 at Val.cc:323, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x30)
    frame #0: 0x000000010022bddf bro`Val::IsZero(this=0x0000000000000000) const + 15 at Val.cc:323
   320 	
   321 	int Val::IsZero() const
   322 		{
-> 323 		switch ( type->InternalType() ) {
   324 		case TYPE_INTERNAL_INT:		return val.int_val == 0;
   325 		case TYPE_INTERNAL_UNSIGNED:	return val.uint_val == 0;
   326 		case TYPE_INTERNAL_DOUBLE:	return val.double_val == 0.0;
(lldb) bt
* thread #1: tid = 0x226111, 0x000000010022bddf bro`Val::IsZero(this=0x0000000000000000) const + 15 at Val.cc:323, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x30)
  * frame #0: 0x000000010022bddf bro`Val::IsZero(this=0x0000000000000000) const + 15 at Val.cc:323
    frame #1: 0x000000010020b452 bro`Trigger::Eval(this=0x0000000105d45d60) + 578 at Trigger.cc:209
    frame #2: 0x000000010020ae95 bro`Trigger(this=0x0000000105d45d60, arg_cond=0x0000000104a00390, arg_body=0x0000000104a00500, arg_timeout_stmts=0x0000000000000000, arg_timeout=0x0000000000000000, arg_frame=0x00007fff5fbfec80, arg_is_return=false, arg_location=0x00000001049fb7a0) + 1285 at Trigger.cc:140
    frame #3: 0x000000010020a98a bro`Trigger(this=0x0000000105d45d60, arg_cond=0x0000000104a00390, arg_body=0x0000000104a00500, arg_timeout_stmts=0x0000000000000000, arg_timeout=0x0000000000000000, arg_frame=0x00007fff5fbfec80, arg_is_return=false, arg_location=0x00000001049fb7a0) + 106 at Trigger.cc:147
    frame #4: 0x000000010020566f bro`WhenStmt::Exec(this=0x0000000104a00900, f=0x00007fff5fbfec80, flow=0x00007fff5fbfece8) const + 239 at Stmt.cc:2041
    frame #5: 0x0000000100203204 bro`StmtList::Exec(this=0x00000001049fbe80, f=0x00007fff5fbfec80, flow=0x00007fff5fbfece8) const + 228 at Stmt.cc:1639
    frame #6: 0x000000010003d244 bro`main(argc=2, argv=0x00007fff5fbffa40) + 15476 at main.cc:1116
{code}



--
This message was sent by Atlassian JIRA
(v6.3-OD-01-067#6307)


More information about the bro-dev mailing list