]> git.proxmox.com Git - mirror_frr.git/commitdiff
ospfd: fix no virtual-link cmd
authorEmanuele Di Pascale <emanuele@voltanet.io>
Fri, 18 Jan 2019 11:39:28 +0000 (12:39 +0100)
committerEmanuele Di Pascale <emanuele@voltanet.io>
Fri, 18 Jan 2019 11:43:35 +0000 (12:43 +0100)
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 <emanuele@voltanet.io>
ospfd/ospf_vty.c

index 3ab9c018ea2bbb78c18c9807175c6b8033aaea78..c1dc1f0d6fae8441dc94b6e48b7021c46bb0fe87 100644 (file)
@@ -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;
        }