if_create_name crashes when vrf_id is VRF_UNKNOWN:
```
nfware# conf t
nfware(config)# router ospf vrf doesnt-exist
nfware(config-router)# area 1.1.1.1 virtual-link 2.2.2.2
vtysh: error reading from ospfd: Success (0)Warning: closing connection to ospfd because of an I/O error!
```
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
return NULL;
}
+ if (ospf->vrf_id == VRF_UNKNOWN) {
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_debug(
+ "ospf_vl_new(): Alarm: cannot create pseudo interface in unknown VRF");
+ return NULL;
+ }
+
if (IS_DEBUG_OSPF_EVENT)
zlog_debug(
"ospf_vl_new(): creating pseudo zebra interface vrf id %u",
vl_data = ospf_vl_data_new(area, vl_config->vl_peer);
if (vl_data->vl_oi == NULL) {
vl_data->vl_oi = ospf_vl_new(ospf, vl_data);
+ if (!vl_data->vl_oi) {
+ ospf_vl_data_free(vl_data);
+ vty_out(vty,
+ "Can't create VL, check logs for more information\n");
+ return NULL;
+ }
ospf_vl_add(ospf, vl_data);
ospf_spf_calculate_schedule(ospf,
SPF_FLAG_CONFIG_CHANGE);