server: fix bad interpretation of local socket binding

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/server.c b/server.c
index 524c814..61bbe44 100644
--- a/server.c
+++ b/server.c
@@ -827,7 +827,7 @@
  */
 static int fio_handle_server_arg(void)
 {
-	int unused;
+	int is_sock, ret;
 
 	saddr_in.sin_addr.s_addr = htonl(INADDR_ANY);
 	saddr_in.sin_port = htons(fio_net_port);
@@ -835,8 +835,15 @@
 	if (!fio_server_arg)
 		return 0;
 
-	return fio_server_parse_string(fio_server_arg, &bind_sock, &unused,
+	ret = fio_server_parse_string(fio_server_arg, &bind_sock, &is_sock,
 					&fio_net_port, &saddr_in.sin_addr);
+
+	if (!is_sock && bind_sock) {
+		free(bind_sock);
+		bind_sock = NULL;
+	}
+
+	return ret;
 }
 
 static int fio_server(void)