From aa83d4110b4bac0f5e9aeb21f65404fd14a5f671 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 9 Oct 2020 14:20:13 +0200 Subject: gprs_ns2_udp: Avoid dangling freed struct in list if binding fails Change-Id: Ic54434b7cfc40136788257e768cae7a2b5d5bc79 --- src/gb/gprs_ns2_udp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 3ce05084..207febf7 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -303,8 +303,6 @@ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, priv->addr = *local; INIT_LLIST_HEAD(&bind->nsvc); - llist_add(&bind->list, &nsi->binding); - rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_DGRAM, IPPROTO_UDP, local, NULL, OSMO_SOCK_F_BIND); @@ -325,6 +323,7 @@ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, dscp, rc, errno); } + llist_add(&bind->list, &nsi->binding); ns2_vty_bind_apply(bind); if (result) -- cgit v1.2.3