Commit 89c221ad8a43b3f638b7c90c6c74ee339a777208

Kano 2011-11-23T15:57:47

Fix missing close() for invalid commands

diff --git a/api.c b/api.c
index e16f2e5..f07989f 100644
--- a/api.c
+++ b/api.c
@@ -288,13 +288,9 @@ void api()
 		}
 
 		inet_ntop(AF_INET, &(cli.sin_addr), &(tmpaddr[0]), sizeof(tmpaddr)-1);
-		if (strcmp(tmpaddr, addr) != 0)
-			close(c);
-		else {
+		if (strcmp(tmpaddr, addr) == 0) {
 			n = read(c, &buf[0], BUFSIZ-1);
-			if (n < 0)
-				close(c);
-			else {
+			if (n >= 0) {
 				buf[n] = '\0';
 				params = strchr(buf, '|');
 				if (params != NULL)
@@ -310,6 +306,7 @@ void api()
 				}
 			}
 		}
+		close(c);
 	}
 
 	close(sock);