diff mbox series

[2/7] tests/unit/socket-helpers: Don't close(-1)

Message ID 20240312183810.557768-3-peter.maydell@linaro.org (mailing list archive)
State New, archived
Headers show
Series various: 7 minor Coverity fixes | expand

Commit Message

Peter Maydell March 12, 2024, 6:38 p.m. UTC
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>
---
 tests/unit/socket-helpers.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Thomas Huth March 22, 2024, 11:51 a.m. UTC | #1
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.maydell@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 <thuth@redhat.com>
diff mbox series

Patch

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;
 }