mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 23:58:20 +00:00
GH-208: change invalid subnet expressions to a runtime error
Rather than abort.
This commit is contained in:
parent
67484a90fa
commit
01a8418d79
4 changed files with 65 additions and 11 deletions
|
@ -216,7 +216,10 @@ IPPrefix::IPPrefix(const in4_addr& in4, uint8_t length)
|
|||
: prefix(in4), length(96 + length)
|
||||
{
|
||||
if ( length > 32 )
|
||||
reporter->InternalError("Bad in4_addr IPPrefix length : %d", length);
|
||||
{
|
||||
reporter->Error("Bad in4_addr IPPrefix length : %d", length);
|
||||
this->length = 0;
|
||||
}
|
||||
|
||||
prefix.Mask(this->length);
|
||||
}
|
||||
|
@ -225,7 +228,10 @@ IPPrefix::IPPrefix(const in6_addr& in6, uint8_t length)
|
|||
: prefix(in6), length(length)
|
||||
{
|
||||
if ( length > 128 )
|
||||
reporter->InternalError("Bad in6_addr IPPrefix length : %d", length);
|
||||
{
|
||||
reporter->Error("Bad in6_addr IPPrefix length : %d", length);
|
||||
this->length = 0;
|
||||
}
|
||||
|
||||
prefix.Mask(this->length);
|
||||
}
|
||||
|
@ -236,19 +242,23 @@ IPPrefix::IPPrefix(const IPAddr& addr, uint8_t length, bool len_is_v6_relative)
|
|||
if ( prefix.GetFamily() == IPv4 && ! len_is_v6_relative )
|
||||
{
|
||||
if ( length > 32 )
|
||||
reporter->InternalError("Bad IPAddr(v4) IPPrefix length : %d",
|
||||
length);
|
||||
|
||||
this->length = length + 96;
|
||||
{
|
||||
reporter->Error("Bad IPAddr(v4) IPPrefix length : %d", length);
|
||||
this->length = 0;
|
||||
}
|
||||
else
|
||||
this->length = length + 96;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if ( length > 128 )
|
||||
reporter->InternalError("Bad IPAddr(v6) IPPrefix length : %d",
|
||||
length);
|
||||
|
||||
this->length = length;
|
||||
{
|
||||
reporter->Error("Bad IPAddr(v6) IPPrefix length : %d", length);
|
||||
this->length = 0;
|
||||
}
|
||||
else
|
||||
this->length = length;
|
||||
}
|
||||
|
||||
prefix.Mask(this->length);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue