Fix: add missing rcu read side lock
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index 184ac6be62de3c5667d06c126eb373aa3ce1d1d6..7482f402302bde8ab8df531f2de8fbc1ed8e9668 100644 (file)
@@ -626,7 +626,7 @@ static int update_kernel_stream(struct consumer_data *consumer_data, int fd)
                                        struct lttng_ht_iter iter;
                                        struct consumer_socket *socket;
 
-
+                                       rcu_read_lock();
                                        cds_lfht_for_each_entry(ksess->consumer->socks->ht,
                                                        &iter.iter, socket, node.node) {
                                                /* Code flow error */
@@ -637,9 +637,11 @@ static int update_kernel_stream(struct consumer_data *consumer_data, int fd)
                                                                channel, ksess);
                                                pthread_mutex_unlock(socket->lock);
                                                if (ret < 0) {
+                                                       rcu_read_unlock();
                                                        goto error;
                                                }
                                        }
+                                       rcu_read_unlock();
                                }
                                goto error;
                        }
@@ -1330,7 +1332,7 @@ static void *thread_dispatch_ust_registration(void *data)
                                        ret = write(apps_cmd_pipe[1], ust_cmd,
                                                        sizeof(struct ust_command));
                                } while (ret < 0 && errno == EINTR);
-                               if (ret < 0) {
+                               if (ret < 0 || ret != sizeof(struct ust_command)) {
                                        PERROR("write apps cmd pipe");
                                        if (errno == EBADF) {
                                                /*
This page took 0.023441 seconds and 4 git commands to generate.