projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: Metadata stream leak when received in consumer
[lttng-tools.git]
/
src
/
common
/
kernel-consumer
/
kernel-consumer.c
diff --git
a/src/common/kernel-consumer/kernel-consumer.c
b/src/common/kernel-consumer/kernel-consumer.c
index a288df3cd5f9f3e0fc79b793ff7720f229ee1f61..4d61cc506f32e57896b96bf72ee50b91cc3a50b5 100644
(file)
--- a/
src/common/kernel-consumer/kernel-consumer.c
+++ b/
src/common/kernel-consumer/kernel-consumer.c
@@
-215,29
+215,23
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
goto end_nosignal;
}
goto end_nosignal;
}
- /* Send stream to the metadata thread */
- if (new_stream->metadata_flag) {
- if (ctx->on_recv_stream) {
- ret = ctx->on_recv_stream(new_stream);
- if (ret < 0) {
- goto end_nosignal;
- }
+ if (ctx->on_recv_stream) {
+ ret = ctx->on_recv_stream(new_stream);
+ if (ret < 0) {
+ goto end_nosignal;
}
}
+ }
+ /* Send stream to the metadata thread */
+ if (new_stream->metadata_flag) {
do {
do {
- ret = write(ctx->consumer_metadata_pipe[1], new_stream,
- sizeof(
struct lttng_consumer
_stream));
+ ret = write(ctx->consumer_metadata_pipe[1],
&
new_stream,
+ sizeof(
new
_stream));
} while (ret < 0 && errno == EINTR);
if (ret < 0) {
PERROR("write metadata pipe");
}
} else {
} while (ret < 0 && errno == EINTR);
if (ret < 0) {
PERROR("write metadata pipe");
}
} else {
- if (ctx->on_recv_stream) {
- ret = ctx->on_recv_stream(new_stream);
- if (ret < 0) {
- goto end_nosignal;
- }
- }
consumer_add_stream(new_stream);
}
consumer_add_stream(new_stream);
}
This page took
0.027695 seconds
and
4
git commands to generate.