mirror of
https://github.com/zeek/zeek.git
synced 2025-10-07 17:18:20 +00:00
Fix signatures that use identifiers of type table.
This commit is contained in:
parent
eef432561e
commit
4e8ba6eaa2
3 changed files with 18 additions and 5 deletions
|
@ -1243,15 +1243,16 @@ void id_to_maskedvallist(const char* id, maskedvalue_list* append_to,
|
||||||
|
|
||||||
if ( v->Type()->Tag() == TYPE_TABLE )
|
if ( v->Type()->Tag() == TYPE_TABLE )
|
||||||
{
|
{
|
||||||
val_list* vals = v->AsTableVal()->ConvertToPureList()->Vals();
|
ListVal* lv = v->AsTableVal()->ConvertToPureList();
|
||||||
|
val_list* vals = lv->Vals();
|
||||||
loop_over_list(*vals, i )
|
loop_over_list(*vals, i )
|
||||||
if ( ! val_to_maskedval((*vals)[i], append_to, prefix_vector) )
|
if ( ! val_to_maskedval((*vals)[i], append_to, prefix_vector) )
|
||||||
{
|
{
|
||||||
delete_vals(vals);
|
Unref(lv);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete_vals(vals);
|
Unref(lv);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
|
signature_match [orig_h=127.0.0.1, orig_p=30000/udp, resp_h=127.0.0.1, resp_p=13000/udp] - idtable
|
||||||
signature_match [orig_h=127.0.0.1, orig_p=30000/udp, resp_h=127.0.0.1, resp_p=13000/udp] - id
|
signature_match [orig_h=127.0.0.1, orig_p=30000/udp, resp_h=127.0.0.1, resp_p=13000/udp] - id
|
||||||
|
|
|
@ -6,10 +6,21 @@ signature id {
|
||||||
ip-proto == udp_proto_number
|
ip-proto == udp_proto_number
|
||||||
event "id"
|
event "id"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signature idtable {
|
||||||
|
dst-ip == mynets
|
||||||
|
event "idtable"
|
||||||
|
}
|
||||||
@TEST-END-FILE
|
@TEST-END-FILE
|
||||||
|
|
||||||
const udp_proto_number = 17;
|
const udp_proto_number = 17;
|
||||||
|
|
||||||
|
const mynets: set[subnet] = {
|
||||||
|
192.168.1.0/24,
|
||||||
|
10.0.0.0/8,
|
||||||
|
127.0.0.0/24
|
||||||
|
};
|
||||||
|
|
||||||
event signature_match(state: signature_state, msg: string, data: string)
|
event signature_match(state: signature_state, msg: string, data: string)
|
||||||
{
|
{
|
||||||
print fmt("signature_match %s - %s", state$conn$id, msg);
|
print fmt("signature_match %s - %s", state$conn$id, msg);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue