Bug found bei Keith & Seth: input framework was not handling counts and ints out of 32-bit-range correctly.

Note - another bugfix will be coming later (problem reading sets containing zero-length-strings & un-escaping-bug in sets)
This commit is contained in:
Bernhard Amann 2012-08-26 14:49:37 -07:00
parent c1c9c9e34a
commit 124c985d7a
3 changed files with 50 additions and 3 deletions

View file

@ -0,0 +1,44 @@
# (uses listen.bro just to ensure input sources are more reliably fully-read).
# @TEST-SERIALIZE: comm
#
# @TEST-EXEC: btest-bg-run bro bro -b %INPUT
# @TEST-EXEC: btest-bg-wait -k 5
# @TEST-EXEC: btest-diff out
@TEST-START-FILE input.log
#separator \x09
#fields i c
#types int count
9223372036854775800 18446744073709551612
@TEST-END-FILE
@load frameworks/communication/listen
global outfile: file;
module A;
type Idx: record {
i: int;
};
type Val: record {
c: count;
};
global servers: table[int] of Val = table();
event bro_init()
{
outfile = open("../out");
# first read in the old stuff into the table...
Input::add_table([$source="../input.log", $name="ssh", $idx=Idx, $val=Val, $destination=servers]);
Input::remove("ssh");
}
event Input::update_finished(name: string, source:string)
{
print outfile, servers;
close(outfile);
terminate();
}