From 3b1300f575fb2dfef452c806a3548a41d36517ae Mon Sep 17 00:00:00 2001 From: Emanuele Di Pascale Date: Fri, 18 Jan 2019 12:39:28 +0100 Subject: [PATCH] ospfd: fix no virtual-link cmd the command was not checking correctly in all cases whether the virtual link existed. This caused bugs in some corner cases, e.g. when two virtual links were created, one of them was deleted, and the second one was reset with no authentication - this would instead create a new virtual link with the area in decimal format. Signed-off-by: Emanuele Di Pascale --- ospfd/ospf_vty.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 3ab9c018ea..c1dc1f0d6f 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -1205,14 +1205,17 @@ DEFUN (no_ospf_area_vlink, return CMD_WARNING_CONFIG_FAILED; } + vl_data = ospf_vl_lookup(ospf, area, vl_config.vl_peer); + if (!vl_data) { + vty_out(vty, "Virtual link does not exist\n"); + return CMD_WARNING_CONFIG_FAILED; + } + if (argc <= 5) { /* Basic VLink no command */ /* Thats all folks! - BUGS B. strikes again!!!*/ - if ((vl_data = ospf_vl_lookup(ospf, area, vl_config.vl_peer))) - ospf_vl_delete(ospf, vl_data); - + ospf_vl_delete(ospf, vl_data); ospf_area_check_free(ospf, vl_config.area_id); - return CMD_SUCCESS; } -- 2.39.5