nc: free lsa in server mode, we might be up for a long time

diff --git a/networking/nc.c b/networking/nc.c
index 857d635..e64c998 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -111,12 +111,12 @@
 			/* If we didn't specify a port number,
 			 * query and print it after listen() */
 			if (!lport) {
-				socklen_t addrlen = lsa->len;
-				getsockname(sfd, &lsa->u.sa, &addrlen);
+				getsockname(sfd, &lsa->u.sa, &lsa->len);
 				lport = get_nport(&lsa->u.sa);
 				fdprintf(2, "%d\n", ntohs(lport));
 			}
 			close_on_exec_on(sfd);
+			free(lsa);
  accept_again:
 			cfd = accept(sfd, NULL, 0);
 			if (cfd < 0)