Fix: Unbalanced rcu_read_unlock() on stream file creation failure
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index a554aedbfd3c0412e10c46cb6d519d9effddae44..537ef877882ad5ac9e006c94f9979e3a928fb925 100644 (file)
@@ -1289,7 +1289,7 @@ int relay_add_stream(struct lttcomm_relayd_hdr *recv_hdr,
        ret = utils_mkdir_recursive(stream->path_name, S_IRWXU | S_IRWXG);
        if (ret < 0) {
                ERR("relay creating output directory");
-               goto end;
+               goto err_free_stream;
        }
 
        /*
@@ -1300,7 +1300,7 @@ int relay_add_stream(struct lttcomm_relayd_hdr *recv_hdr,
                        stream->tracefile_size, 0, relayd_uid, relayd_gid, NULL);
        if (ret < 0) {
                ERR("Create output file");
-               goto end;
+               goto err_free_stream;
        }
        stream->fd = ret;
        if (stream->tracefile_size) {
@@ -1352,7 +1352,7 @@ end:
        if (ret < 0) {
                reply.ret_code = htobe32(LTTNG_ERR_UNK);
                /* stream was not properly added to the ht, so free it */
-               free(stream);
+               stream_destroy(stream);
        } else {
                reply.ret_code = htobe32(LTTNG_OK);
        }
@@ -1369,9 +1369,7 @@ end_no_session:
        return ret;
 
 err_free_stream:
-       free(stream->path_name);
-       free(stream->channel_name);
-       free(stream);
+       stream_destroy(stream);
        return ret;
 }
 
This page took 0.02465 seconds and 4 git commands to generate.