liblttng-ust-comm: move `_unlock_fd_tracker()` after `close()` on error paths
[lttng-ust.git] / liblttng-ust-comm / lttng-ust-comm.c
index 543465edf2fe2e2ee703a0d62e1b4c800d5d2f0d..9f2bdd5b3f80b650c04bbb6cb5ff37af74317880 100644 (file)
@@ -631,12 +631,12 @@ ssize_t ustcomm_recv_channel_from_sessiond(int sock,
 
        ret = lttng_ust_add_fd_to_tracker(wakeup_fd);
        if (ret < 0) {
-               lttng_ust_unlock_fd_tracker();
                ret = close(wakeup_fd);
                if (ret) {
                        PERROR("close on wakeup_fd");
                }
                len = -EIO;
+               lttng_ust_unlock_fd_tracker();
                goto error_recv;
        }
 
@@ -677,19 +677,18 @@ int ustcomm_recv_stream_from_sessiond(int sock,
 
        ret = lttng_ust_add_fd_to_tracker(fds[0]);
        if (ret < 0) {
-               lttng_ust_unlock_fd_tracker();
                ret = close(fds[0]);
                if (ret) {
                        PERROR("close on received shm_fd");
                }
                ret = -EIO;
+               lttng_ust_unlock_fd_tracker();
                goto error;
        }
        *shm_fd = ret;
 
        ret = lttng_ust_add_fd_to_tracker(fds[1]);
        if (ret < 0) {
-               lttng_ust_unlock_fd_tracker();
                ret = close(*shm_fd);
                if (ret) {
                        PERROR("close on shm_fd");
@@ -700,6 +699,7 @@ int ustcomm_recv_stream_from_sessiond(int sock,
                        PERROR("close on received wakeup_fd");
                }
                ret = -EIO;
+               lttng_ust_unlock_fd_tracker();
                goto error;
        }
        *wakeup_fd = ret;
This page took 0.023043 seconds and 4 git commands to generate.