diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 7 | ||||
-rw-r--r-- | lib/command.c | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index fd6e20b6..08d6278f 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,10 @@ +2005-09-05 Paul Jakma <paul.jakma@sun.com> + + * command.c: (install_element) be more robust. Eg, cmd_init + need not have been called, some applications may use other + library subsystems, which call install_element, without the + application wanting commands and hence not calling cmd_init. + 2005-08-22 Hugo Santos <hsantos@av.it.pt> * command.h: (enum node_type) Add BGP_IPV6M_NODE diff --git a/lib/command.c b/lib/command.c index f6423595..2b7ca9ad 100644 --- a/lib/command.c +++ b/lib/command.c @@ -1,5 +1,5 @@ /* - $Id: command.c,v 1.49 2005/08/22 22:39:56 paul Exp $ + $Id: command.c,v 1.50 2005/09/05 11:54:13 paul Exp $ Command interpreter routine for virtual terminal [aka TeletYpe] Copyright (C) 1997, 98, 99 Kunihiro Ishiguro @@ -35,7 +35,7 @@ Boston, MA 02111-1307, USA. */ /* Command vector which includes some level of command lists. Normally each daemon maintains each own cmdvec. */ -vector cmdvec; +vector cmdvec = NULL; /* Host information structure. */ struct host host; @@ -475,7 +475,11 @@ void install_element (enum node_type ntype, struct cmd_element *cmd) { struct cmd_node *cnode; - + + /* cmd_init hasn't been called */ + if (!cmdvec) + return; + cnode = vector_slot (cmdvec, ntype); if (cnode == NULL) |