summaryrefslogtreecommitdiff
path: root/ospfd/ospf_apiserver.c
diff options
context:
space:
mode:
authorpaul <paul>2005-10-23 15:26:24 +0000
committerpaul <paul>2005-10-23 15:26:24 +0000
commite029d448587551be7543e64e278dbb566f57509a (patch)
tree7ce8c2a0a69634c377c2e0180fecc6ad2cfa6eca /ospfd/ospf_apiserver.c
parentb8ad39d47a0fea7a336305cfd04f059c8e797aad (diff)
2005-10-23 Paul Jakma <paul.jakma@sun.com>
* ospf_apiserver.c: (ospf_apiserver_term) This function should not have side-effects (eg segv) if no apiserver instances are active, ie be robust.
Diffstat (limited to 'ospfd/ospf_apiserver.c')
-rw-r--r--ospfd/ospf_apiserver.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ospfd/ospf_apiserver.c b/ospfd/ospf_apiserver.c
index 784716b5..577419da 100644
--- a/ospfd/ospf_apiserver.c
+++ b/ospfd/ospf_apiserver.c
@@ -189,11 +189,13 @@ ospf_apiserver_term (void)
* Free all client instances. ospf_apiserver_free removes the node
* from the list, so we examine the head of the list anew each time.
*/
- while ( (apiserv = listgetdata (listhead (apiserver_list))) != NULL)
+ while ( apiserver_list &&
+ (apiserv = listgetdata (listhead (apiserver_list))) != NULL)
ospf_apiserver_free (apiserv);
/* Free client list itself */
- list_delete (apiserver_list);
+ if (apiserver_list)
+ list_delete (apiserver_list);
/* Free wildcard list */
/* XXX */