gprs_ns2_udp: Avoid dangling freed struct in list if binding fails

Change-Id: Ic54434b7cfc40136788257e768cae7a2b5d5bc79
diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c
index 3ce0508..207febf 100644
--- a/src/gb/gprs_ns2_udp.c
+++ b/src/gb/gprs_ns2_udp.c
@@ -303,8 +303,6 @@
 	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 @@
 				dscp, rc, errno);
 	}
 
+	llist_add(&bind->list, &nsi->binding);
 	ns2_vty_bind_apply(bind);
 
 	if (result)