eigrp: use correct memory pool on interface deletion

Trying to delete an interface during the test test_eigrp_topo1.py triggers a crash.
```
EIGRP: abort+0x12b
EIGRP: _zlog_assert_failed+0x18c
EIGRP: mt_count_free+0x56
EIGRP: qfree+0x2e
EIGRP: eigrp_if_delete_hook+0x8c
EIGRP: hook_call_if_del+0x5f
EIGRP: if_delete_retain+0x1c
EIGRP: if_delete+0xfb
EIGRP: if_destroy_via_zapi+0x69
EIGRP: zclient_interface_delete+0x57
EIGRP: zclient_read+0x3d0
EIGRP: event_call+0xd8
EIGRP: frr_run+0x271
EIGRP: main+0x14b
EIGRP: __libc_start_main+0xf3
EIGRP: _start+0x2e
EIGRP: in thread zclient_read scheduled from lib/zclient.c:4514 zclient_event()
```

Signed-off-by: Volodymyr Huti <v.huti@vyos.io>
This commit is contained in:
Volodymyr Huti 2023-10-10 19:10:18 +03:00
parent 03d1b44c9b
commit 8ddf6a713f

View file

@ -43,8 +43,7 @@
#include "eigrpd/eigrp_types.h"
#include "eigrpd/eigrp_metric.h"
DEFINE_MTYPE_STATIC(EIGRPD, EIGRP_IF, "EIGRP interface");
DEFINE_MTYPE_STATIC(EIGRPD, EIGRP_IF_INFO, "EIGRP Interface Information");
DEFINE_MTYPE_STATIC(EIGRPD, EIGRP_IF, "EIGRP interface");
struct eigrp_interface *eigrp_if_new(struct eigrp *eigrp, struct interface *ifp,
struct prefix *p)
@ -110,7 +109,7 @@ int eigrp_if_delete_hook(struct interface *ifp)
eigrp_fifo_free(ei->obuf);
XFREE(MTYPE_EIGRP_IF_INFO, ifp->info);
XFREE(MTYPE_EIGRP_IF, ifp->info);
return 0;
}