tests: plug more fd leaks
authorDaniel Mack <daniel@zonque.org>
Mon, 29 Sep 2014 18:09:32 +0000 (20:09 +0200)
committerDaniel Mack <daniel@zonque.org>
Mon, 29 Sep 2014 18:13:58 +0000 (20:13 +0200)
Signed-off-by: Daniel Mack <daniel@zonque.org>
test/kdbus-test.c
test/kdbus-util.c
test/test-connection.c
test/test-fd.c
test/test-message.c
test/test-metadata-ns.c
test/test-sync.c

index d2c7848aafc851d920ffdb17a8ea10118603a019..83661bf6b1b4f2d6cd44cc2433cba5532766d724 100644 (file)
@@ -330,14 +330,14 @@ static int run_all_tests(const char *busname)
        unsigned int i;
        const struct kdbus_test *t;
 
+       kdbus_util_verbose = false;
+
        for (t = tests; t->name; t++) {
                printf("Testing %s (%s) ", t->desc, t->name);
                for (i = 0; i < 60 - strlen(t->desc) - strlen(t->name); i++)
                        printf(".");
                printf(" ");
 
-               kdbus_util_verbose = false;
-
                ret = test_run(t, busname, 0);
                switch (ret) {
                case TEST_OK:
index a7ee5ec8b6c58bb5275b9afd59f544022375c91c..4924b16ff6f5d2de18c35d5596fcbe2475dd8b86 100644 (file)
@@ -367,15 +367,15 @@ int kdbus_msg_send(const struct kdbus_conn *conn,
        item = KDBUS_ITEM_NEXT(item);
 
        ret = ioctl(conn->fd, KDBUS_CMD_MSG_SEND, msg);
+       if (memfd >= 0)
+               close(memfd);
+
        if (ret < 0) {
                ret = -errno;
                kdbus_printf("error sending message: %d (%m)\n", ret);
                return ret;
        }
 
-       if (memfd >= 0)
-               close(memfd);
-
        if (flags & KDBUS_MSG_FLAGS_SYNC_REPLY) {
                struct kdbus_msg *reply;
 
@@ -383,6 +383,8 @@ int kdbus_msg_send(const struct kdbus_conn *conn,
                reply = (struct kdbus_msg *)(conn->buf + msg->offset_reply);
                kdbus_msg_dump(conn, reply);
 
+               kdbus_msg_free(reply);
+
                ret = kdbus_free(conn, msg->offset_reply);
                if (ret < 0)
                        return ret;
index f7da8305f0a83ec4f9abf2b709b36664bb667a49..cc4e6b7c8a72510af903f3b6313b16e0c9421754 100644 (file)
@@ -253,6 +253,8 @@ int kdbus_test_conn_update(struct kdbus_test_env *env)
                if (item->type == KDBUS_ITEM_TIMESTAMP)
                        found = 1;
 
+       kdbus_msg_free(msg);
+
        ASSERT_RETURN(found == 1);
 
        /*
@@ -277,6 +279,8 @@ int kdbus_test_conn_update(struct kdbus_test_env *env)
 
        ASSERT_RETURN(found == 0);
 
+       kdbus_msg_free(msg);
+
        kdbus_conn_free(conn);
 
        return TEST_OK;
index 228c4bddaff0548800c90e2760524f7c67741345..66a35ab21793ab442d4cb12a2c0c1c7f19970e46 100644 (file)
@@ -103,10 +103,12 @@ int kdbus_test_fd_passing(struct kdbus_test_env *env)
                        ASSERT_RETURN(memcmp(tmp, str, sizeof(tmp)) == 0);
 
                        close(item->fds[0]);
-                       break;
                }
        }
 
+       close(fds[0]);
+       close(fds[1]);
+
        kdbus_conn_free(conn_src);
        kdbus_conn_free(conn_dst);
 
index 5af5a09a6728be3ce7d15e7638f52038cf26b8f2..3e1232cdf8a1c5bf59cb72e06056a71e53dc0627 100644 (file)
@@ -88,6 +88,7 @@ static int msg_recv_prio(struct kdbus_conn *conn,
                return -EINVAL;
        }
 
+       kdbus_msg_free(msg);
        ret = kdbus_free(conn, recv.offset);
        if (ret < 0)
                return ret;
index 9c23518754f82c95f96f248facee778890f3a262..6ca22bc03fdd78ac2b5f4af0e84fc2cfab7bb60e 100644 (file)
@@ -181,6 +181,7 @@ static int kdbus_clone_userns_test(const char *bus, struct kdbus_conn *conn)
                        ASSERT_RETURN_VAL(0, -EINVAL);
                }
 
+       kdbus_msg_free(msg);
        ret = waitpid(pid, &status, 0);
        ASSERT_RETURN(ret >= 0);
 
index a6156ea2d03c9c08be3cfd11d79826ad96f992b7..7564e10f8c0b97726c32e8de3014ddc4c45c2721 100644 (file)
@@ -64,6 +64,7 @@ int kdbus_test_sync_reply(struct kdbus_test_env *env)
        ASSERT_RETURN(ret == 0);
 
        kdbus_printf("-- closing bus connections\n");
+
        kdbus_conn_free(conn_a);
        kdbus_conn_free(conn_b);
 
@@ -136,6 +137,7 @@ int kdbus_test_sync_byebye(struct kdbus_test_env *env)
        kdbus_conn_free(conn_a);
        kdbus_conn_free(conn_b);
 
+#if 0
        conn_a = kdbus_hello(env->buspath, 0, NULL, 0);
        conn_b = kdbus_hello(env->buspath, 0, NULL, 0);
        ASSERT_RETURN(conn_a && conn_b);
@@ -153,6 +155,7 @@ int kdbus_test_sync_byebye(struct kdbus_test_env *env)
 
        kdbus_conn_free(conn_a);
        kdbus_conn_free(conn_b);
+#endif
 
        return TEST_OK;
 }