From eb820afe3b53321624317cfa6b426ecae1392f24 Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 5 Sep 2005 11:54:13 +0000 Subject: 2005-09-05 Paul Jakma * 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. --- lib/ChangeLog | 7 +++++++ 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 + + * 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 * 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) -- cgit v1.2.1