[Bro-Dev] #366: Crash with optional table and record ctors
Bro Tracker
bro at tracker.icir.org
Wed Jan 26 13:21:44 PST 2011
#366: Crash with optional table and record ctors
----------------------+------------------------
Reporter: robin | Owner:
Type: Problem | Status: new
Priority: Normal | Milestone:
Component: Bro | Version: git/master
Resolution: | Keywords:
----------------------+------------------------
Comment (by seth):
> type request: record {
> ...
> t: time;
> x: table[string] of string &optional &default="-";
> ...
> }
>
> local req: request = [$t=network_time()]; # <-- here
This is actually crashing because of the &default. If you remove the
&optional attribute, it still crashes.
What are you trying to set to "-"? It doesn't make much sense that you'd
get back a table like this:
{{{
[ ["-"] = nil ]
}}}
Of course Bro doesn't have a nil value anyway, but you get the idea. The
use of the &default attribute on complex types in records has never been
very well defined and I think this is one of the cases where things need
handled differently. It occurs to me that I should be able to provide the
default attribute something like this:
{{{
x: table[string] of string &default = table(["-"] = "<empty>");
}}}
I know that would cause some problems with execution time and is why
table() and set() can't be used as default attributes yet, but it should
definitely work. I think that has been one of my largest annoyances about
the scripting language overall.
--
Ticket URL: <http://tracker.icir.org/bro/ticket/366#comment:0>
Bro Tracker <http://tracker.icir.org/bro>
Bro Issue Tracker
More information about the bro-dev
mailing list