diff options
author | Mark Wells <mark@freeside.biz> | 2014-06-09 16:36:59 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-06-09 16:36:59 -0700 |
commit | d88573ffdbf81830da692c49461664fc076f855d (patch) | |
tree | 6009f11ddf976414f2807f2a49160b1e2bb04f10 /httemplate | |
parent | a455b3d4dd10624e223705477f55ef09ed81a85f (diff) |
fix checking of address range bounds, #29514, fallout from #26868
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/edit/process/addr_range.html | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/httemplate/edit/process/addr_range.html b/httemplate/edit/process/addr_range.html index 5df05596e..c236a7353 100644 --- a/httemplate/edit/process/addr_range.html +++ b/httemplate/edit/process/addr_range.html @@ -13,10 +13,13 @@ $cgi->param('end', $end->addr); $cgi->param('start', $start->addr); } - if ( $start + 0x7FFFFFFF <= $end ) { + # detect addr ranges that are too big + my ($one) = split('\.', $start->addr); + if ( $one < 128 and $start + 0x7FFFFFFF <= $end ) { # then this is going to overflow - return "Address ranges must be < 2^31 - 1 addresses long." - } + return "Address ranges must be < 2^31 - 1 addresses long."; + } # if the first octet is >= 128, then it's in the top half of + # address space and it CAN'T be too big $cgi->param('length', $end - $start + 1); } else { |