[lttng-dev] [PATCH babeltrace 1/3] Fix: out-of-bound memory access
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Tue Feb 9 13:27:22 EST 2016
We need to check for end of stream before updating the current packet
index, else we access memory beyond the last stream packet index array
element. This fixes valgrind errors which appear at commit
480ef05 Support ctf index version 1.1
due to change of the element size, but actually caused by commit
2654fe9 Fix: events discarded timing inaccuracy
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
formats/ctf/ctf.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c
index a617497..37ebdfc 100644
--- a/formats/ctf/ctf.c
+++ b/formats/ctf/ctf.c
@@ -951,6 +951,11 @@ void ctf_packet_seek(struct bt_stream_pos *stream_pos, size_t index, int whence)
assert(0);
}
+ if (pos->cur_index >= pos->packet_index->len) {
+ pos->offset = EOF;
+ return;
+ }
+
packet_index = &g_array_index(pos->packet_index,
struct packet_index, pos->cur_index);
if (pos->cur_index > 0) {
@@ -963,11 +968,6 @@ void ctf_packet_seek(struct bt_stream_pos *stream_pos, size_t index, int whence)
ctf_update_current_packet_index(&file_stream->parent,
prev_index, packet_index);
- if (pos->cur_index >= pos->packet_index->len) {
- pos->offset = EOF;
- return;
- }
-
/*
* We need to check if we are in trace read or called
* from packet indexing. In this last case, the
--
2.1.4
More information about the lttng-dev
mailing list