Tests fix: unix socket: leaked socket of connection to child
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 19 Jul 2021 21:21:17 +0000 (17:21 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 20 Jul 2021 19:34:01 +0000 (15:34 -0400)
The child_connection socket is only used by the parent in the
credentials passing test. The teardown assumes the reverse which causes
the socket to be leaked.

1458471 Resource leak

The system resource will not be reclaimed and reused, reducing the
future availability of the resource.

In test_creds_passing: Leak of memory or pointers to system
resources (CWE-404)

Reported-by: Coverity Scan
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I2ead9abbfc189ffbdd71a27f6376d0b001cdc2a3

tests/unit/test_unix_socket.c

index 0a96fb589021cc94d2305e7e744d5e3670e9b021..8752ba94151e9fde22ff34f636ec275d759ddc10 100644 (file)
@@ -641,13 +641,6 @@ error:
        }
 
        if (fork_ret == 0) {
-               if (child_connection_socket >= 0) {
-                       ret = close(child_connection_socket);
-                       if (ret) {
-                               PERROR("Failed to close child connection socket");
-                       }
-               }
-
                /* Prevent libtap from printing a result for the child. */
                fclose(stdout);
                fclose(stderr);
@@ -655,6 +648,13 @@ error:
                /* Child exits at the end of this test. */
                exit(0);
        } else if (parent_socket >= 0) {
+               if (child_connection_socket >= 0) {
+                       ret = close(child_connection_socket);
+                       if (ret) {
+                               PERROR("Failed to close child connection socket");
+                       }
+               }
+
                ret = unlink(socket_path);
                if (ret) {
                        PERROR("Failed to unlink socket at path `%s`",
This page took 0.028769 seconds and 5 git commands to generate.