summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Jakma <paul.jakma@sun.com>2006-09-11 02:14:16 +0000
committerPaul Jakma <paul.jakma@sun.com>2006-09-11 02:14:16 +0000
commitb25ea4d085c858137ec28b1be9d6ab6c30a97303 (patch)
tree476bf1799357a70ea42cdfccee9340e8b32172d6
parent3e557ae1ea7693d91b6df42c2529952d6a349911 (diff)
[ripd] bug #293: routemap set metric doesn't check for underflow correctly
2006-09-11 Paul Jakma <paul.jakma@sun.com> * rip_routemap.c: (route_set_metric) underflow check needs to use signed, problem identified and diagnosed by Pavel Nikiforov in bug #293.
-rw-r--r--ripd/ChangeLog3
-rw-r--r--ripd/rip_routemap.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index afae7e98..68813f14 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -2,6 +2,9 @@
* ripd.c: (rip_read) remove gratuitous use of mid-function
declaration of vrecv, bug #278.
+ * rip_routemap.c: (route_set_metric) underflow check needs to
+ use signed, problem identified and diagnosed by Pavel
+ Nikiforov in bug #293.
2006-06-29 Paul Jakma <paul.jakma@sun.com>
diff --git a/ripd/rip_routemap.c b/ripd/rip_routemap.c
index 9d6fd16e..cb87ea55 100644
--- a/ripd/rip_routemap.c
+++ b/ripd/rip_routemap.c
@@ -530,7 +530,7 @@ route_set_metric (void *rule, struct prefix *prefix,
else if (mod->type == metric_absolute)
rinfo->metric_out = mod->metric;
- if (rinfo->metric_out < 1)
+ if ((signed int)rinfo->metric_out < 1)
rinfo->metric_out = 1;
if (rinfo->metric_out > RIP_METRIC_INFINITY)
rinfo->metric_out = RIP_METRIC_INFINITY;