tests/unit/socket-helpers: Don't close(-1)
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 25 Mar 2024 10:41:00 +0000 (10:41 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 25 Mar 2024 10:41:00 +0000 (10:41 +0000)
In socket_check_afunix_support() we call socket(PF_UNIX, SOCK_STREAM, 0)
to see if it works, but we call close() on the result whether it
worked or not. Only close the fd if the socket() call succeeded.
Spotted by Coverity.

Resolves: Coverity CID 1497481

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 20240312183810.557768-3-peter.maydell@linaro.org

tests/unit/socket-helpers.c

index 6de27baee2e9bf6530d04035c2d4d4386bf741ee..f3439cc4e52e09930ffcf1deaa4e7cd3f35942f6 100644 (file)
@@ -160,7 +160,6 @@ void socket_check_afunix_support(bool *has_afunix)
     int fd;
 
     fd = socket(PF_UNIX, SOCK_STREAM, 0);
-    close(fd);
 
 #ifdef _WIN32
     *has_afunix = (fd != (int)INVALID_SOCKET);
@@ -168,5 +167,8 @@ void socket_check_afunix_support(bool *has_afunix)
     *has_afunix = (fd >= 0);
 #endif
 
+    if (*has_afunix) {
+        close(fd);
+    }
     return;
 }