On 12/03/2024 19.38, Peter Maydell wrote:
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.mayd...@linaro.org>
---
  tests/unit/socket-helpers.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tests/unit/socket-helpers.c b/tests/unit/socket-helpers.c
index 6de27baee2e..f3439cc4e52 100644
--- a/tests/unit/socket-helpers.c
+++ b/tests/unit/socket-helpers.c
@@ -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;
  }

Reviewed-by: Thomas Huth <th...@redhat.com>


Reply via email to