server: Fix various error paths if startup fails
Don't segfault or use heap after free if osmo-remsim-server cannot
fully initialize, e.g. due to ports already in use.
Change-Id: I558e6a0ea089a779f916aa5576341d1c55da1271
diff --git a/src/server/rspro_server.c b/src/server/rspro_server.c
index 7ce99c9..550179d 100644
--- a/src/server/rspro_server.c
+++ b/src/server/rspro_server.c
@@ -854,6 +854,11 @@
pthread_rwlock_unlock(&srv->rwlock);
srv->link = ipa_server_link_create(ctx, NULL, host, port, accept_cb, srv);
+ if (!srv->link) {
+ talloc_free(srv);
+ return NULL;
+ }
+
ipa_server_link_open(srv->link);
return srv;
@@ -865,5 +870,6 @@
ipa_server_link_destroy(srv->link);
srv->link = NULL;
+ pthread_rwlock_destroy(&srv->rwlock);
talloc_free(srv);
}