summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Jakma <paul.jakma@sun.com>2006-10-15 23:41:16 +0000
committerPaul Jakma <paul.jakma@sun.com>2006-10-15 23:41:16 +0000
commit53d9f67a18dc59fd688fce999cb35653010a54fb (patch)
tree8412f230b56f658361b99f773395157703bcad7d
parentdcdf399fbc7420d3edc230c9646f720825fcecda (diff)
[bgpd] CID#73, potential crash in bgp statistics if called for AFI/SAFI with emtpy table
2006-10-15 Paul Jakma <paul.jakma@sun.com> * bgp_route.c: (bgp_table_stats_walker) NULL deref if table is empty, bgp_table_top may return NULL, Coverity CID#73.
-rw-r--r--bgpd/ChangeLog5
-rw-r--r--bgpd/bgp_route.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index c33562da..56107329 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-15 Paul Jakma <paul.jakma@sun.com>
+
+ * bgp_route.c: (bgp_table_stats_walker) NULL deref if table is
+ empty, bgp_table_top may return NULL, Coverity CID#73.
+
2006-10-14 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.h: Remove BGP_EVENT_FLUSH_ADD, dangerous and not
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index cd28b4df..7b369748 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -8481,7 +8481,8 @@ bgp_table_stats_walker (struct thread *t)
struct bgp_table_stats *ts = THREAD_ARG (t);
unsigned int space = 0;
- top = bgp_table_top (ts->table);
+ if (!(top = bgp_table_top (ts->table)))
+ return 0;
switch (top->p.family)
{