smpp: Close the file descriptor when we can't accept the SMSC conn

When we failed to allocate the memory or failed to register the
fd we would have leaked the file descriptor. Close the fd and
avoid the leak.
diff --git a/openbsc/src/libmsc/smpp_smsc.c b/openbsc/src/libmsc/smpp_smsc.c
index 2b17d12..1dc37fd 100644
--- a/openbsc/src/libmsc/smpp_smsc.c
+++ b/openbsc/src/libmsc/smpp_smsc.c
@@ -867,8 +867,10 @@
 			  struct sockaddr_storage *s, socklen_t s_len)
 {
 	struct osmo_esme *esme = talloc_zero(smsc, struct osmo_esme);
-	if (!esme)
+	if (!esme) {
+		close(fd);
 		return -ENOMEM;
+	}
 
 	smpp_esme_get(esme);
 	esme->own_seq_nr = rand();
@@ -880,6 +882,7 @@
 	esme->wqueue.bfd.when = BSC_FD_READ;
 
 	if (osmo_fd_register(&esme->wqueue.bfd) != 0) {
+		close(fd);
 		talloc_free(esme);
 		return -EIO;
 	}