From 8b1beddbe4c08e5dd40a73f0bf1b267c8352fa57 Mon Sep 17 00:00:00 2001 From: Roberto Hueso Gómez Date: Thu, 19 Sep 2019 12:45:07 +0200 Subject: #915: Fix file descriptor leak in og_socket_server_init() from exit path Call close() to release the socket in the event of an error. infer says: sources/ogAdmServer.cpp:1244: error: RESOURCE_LEAK resource acquired by call to `socket()` at line 1236, column 6 is not released after line 1244, column 3. 1242. sizeof(on)); 1243. if (res < 0) { 1244. > syslog(LOG_ERR, "cannot set broadcast socket\n"); 1245. return false; 1246. } Not a real problem since OS releases process resources if the server cannot bind to the port, but just to be correct here. --- sources/ogAdmServer.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'sources') diff --git a/sources/ogAdmServer.cpp b/sources/ogAdmServer.cpp index 6401fe1..1b806a9 100644 --- a/sources/ogAdmServer.cpp +++ b/sources/ogAdmServer.cpp @@ -4356,6 +4356,7 @@ static int og_socket_server_init(const char *port) local.sin_port = htons(atoi(port)); if (bind(sd, (struct sockaddr *) &local, sizeof(local)) < 0) { + close(sd); syslog(LOG_ERR, "cannot bind socket\n"); return -1; } -- cgit v1.2.3-18-g5258