summaryrefslogtreecommitdiff
path: root/proto/ospf/iface.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/iface.c')
-rw-r--r--proto/ospf/iface.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c
index 83f6ac30..f2b0d310 100644
--- a/proto/ospf/iface.c
+++ b/proto/ospf/iface.c
@@ -70,6 +70,10 @@ iface_chstate(struct ospf_iface *ifa, u8 state)
{
if(ifa->dr_sk!=NULL)
{
+ if (ifa->dr_sk->rbuf)
+ mb_free(ifa->dr_sk->rbuf);
+ if (ifa->dr_sk->tbuf)
+ mb_free(ifa->dr_sk->tbuf);
rfree(ifa->dr_sk);
ifa->dr_sk=NULL;
}
@@ -103,14 +107,26 @@ downint(struct ospf_iface *ifa)
rem_node(NODE ifa);
if(ifa->hello_sk!=NULL)
{
+ if (ifa->hello_sk->rbuf)
+ mb_free(ifa->hello_sk->rbuf);
+ if (ifa->hello_sk->tbuf)
+ mb_free(ifa->hello_sk->tbuf);
rfree(ifa->hello_sk);
}
if(ifa->dr_sk!=NULL)
{
+ if (ifa->dr_sk->rbuf)
+ mb_free(ifa->dr_sk->rbuf);
+ if (ifa->dr_sk->tbuf)
+ mb_free(ifa->dr_sk->tbuf);
rfree(ifa->dr_sk);
}
if(ifa->ip_sk!=NULL)
{
+ if (ifa->ip_sk->rbuf)
+ mb_free(ifa->ip_sk->rbuf);
+ if (ifa->ip_sk->tbuf)
+ mb_free(ifa->ip_sk->tbuf);
rfree(ifa->ip_sk);
}
if(ifa->wait_timer!=NULL)