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

Johanna Amann (JIRA) jira at bro-tracker.atlassian.net
Thu Oct 30 10:52:07 PDT 2014


     [ https://bro-tracker.atlassian.net/browse/BIT-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Johanna Amann updated BIT-1176:
-------------------------------
    Assignee: Robin Sommer

> 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: Johanna Amann
>            Assignee: Robin Sommer
>             Fix For: 2.4
>
>         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.4-OD-07-004#64005)


More information about the bro-dev mailing list