ospfd: don't allow to set network type on loopback interfaces
OSPFd only allocates some stub information for loopback interfaces.
This causes a crash when the interface state machine is started on
that interface by configuring a different network type.
It doesn't make much sense to configure the network type of a loopback
interface, therefore, just forbid it.
See also bugzilla #670.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 1489b20..ee8c901 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -5309,7 +5309,13 @@
struct interface *ifp = vty->index;
int old_type = IF_DEF_PARAMS (ifp)->type;
struct route_node *rn;
-
+
+ if (old_type == OSPF_IFTYPE_LOOPBACK)
+ {
+ vty_out (vty, "This is a loopback interface. Can't set network type.%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
if (strncmp (argv[0], "b", 1) == 0)
IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_BROADCAST;
else if (strncmp (argv[0], "n", 1) == 0)