summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-06-09 16:36:59 -0700
committerMark Wells <mark@freeside.biz>2014-06-09 16:36:59 -0700
commitd88573ffdbf81830da692c49461664fc076f855d (patch)
tree6009f11ddf976414f2807f2a49160b1e2bb04f10
parenta455b3d4dd10624e223705477f55ef09ed81a85f (diff)
fix checking of address range bounds, #29514, fallout from #26868
-rw-r--r--httemplate/edit/process/addr_range.html9
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 {