Remember to close sockets on error

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/client.c b/client.c
index 88da9a1..10d41e5 100644
--- a/client.c
+++ b/client.c
@@ -233,6 +233,7 @@
 	if (connect(fd, (struct sockaddr *) &client->addr, sizeof(client->addr)) < 0) {
 		log_err("fio: connect: %s\n", strerror(errno));
 		log_err("fio: failed to connect to %s\n", client->hostname);
+		close(fd);
 		return -1;
 	}
 
@@ -258,6 +259,7 @@
 	len = sizeof(addr->sun_family) + strlen(addr->sun_path) + 1;
 	if (connect(fd, (struct sockaddr *) addr, len) < 0) {
 		log_err("fio: connect; %s\n", strerror(errno));
+		close(fd);
 		return -1;
 	}
 
@@ -395,6 +397,7 @@
 
 	if (fstat(fd, &sb) < 0) {
 		log_err("fio: job file stat: %s\n", strerror(errno));
+		close(fd);
 		return 1;
 	}
 
@@ -418,11 +421,13 @@
 
 	if (len) {
 		log_err("fio: failed reading job file %s\n", filename);
+		close(fd);
 		return 1;
 	}
 
 	ret = fio_net_send_cmd(client->fd, FIO_NET_CMD_JOB, buf, sb.st_size);
 	free(buf);
+	close(fd);
 	return ret;
 }
 
diff --git a/engines/net.c b/engines/net.c
index faa08d5..d6821a4 100644
--- a/engines/net.c
+++ b/engines/net.c
@@ -389,6 +389,7 @@
 
 		if (connect(f->fd, (struct sockaddr *) &nd->addr, len) < 0) {
 			td_verror(td, errno, "connect");
+			close(f->fd);
 			return 1;
 		}
 	} else {
@@ -399,6 +400,7 @@
 
 		if (connect(f->fd, (struct sockaddr *) addr, len) < 0) {
 			td_verror(td, errno, "connect");
+			close(f->fd);
 			return 1;
 		}
 	}
@@ -543,6 +545,7 @@
 
 	if (bind(fd, (struct sockaddr *) addr, len) < 0) {
 		log_err("fio: bind: %s\n", strerror(errno));
+		close(fd);
 		return -1;
 	}
 
diff --git a/server.c b/server.c
index ba9558c..c1a2824 100644
--- a/server.c
+++ b/server.c
@@ -654,11 +654,13 @@
 	opt = 1;
 	if (setsockopt(sk, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) {
 		log_err("fio: setsockopt: %s\n", strerror(errno));
+		close(sk);
 		return -1;
 	}
 #ifdef SO_REUSEPORT
 	if (setsockopt(sk, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt)) < 0) {
 		log_err("fio: setsockopt: %s\n", strerror(errno));
+		close(sk);
 		return -1;
 	}
 #endif
@@ -668,6 +670,7 @@
 
 	if (bind(sk, (struct sockaddr *) &saddr_in, sizeof(saddr_in)) < 0) {
 		log_err("fio: bind: %s\n", strerror(errno));
+		close(sk);
 		return -1;
 	}
 
@@ -698,6 +701,7 @@
 
 	if (bind(sk, (struct sockaddr *) &addr, len) < 0) {
 		log_err("fio: bind: %s\n", strerror(errno));
+		close(sk);
 		return -1;
 	}