[lttng-dev] [PATCH babeltrace] Fix: Don't create a new packet if ctf_move_pos() seeks out of a packet
Jérémie Galarneau
jeremie.galarneau at efficios.com
Tue Oct 15 13:23:46 EDT 2013
This change ensures that ctf_move_pos() does not create a new packet
when ctf_move_pos() moves out of the current packet's bounds. The next
call to ctf_pos_access_ok() will report EFAULT which can then be
handled appropriately by the caller.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
include/babeltrace/ctf/types.h | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/include/babeltrace/ctf/types.h b/include/babeltrace/ctf/types.h
index 715cdbd..96c5083 100644
--- a/include/babeltrace/ctf/types.h
+++ b/include/babeltrace/ctf/types.h
@@ -137,23 +137,6 @@ void ctf_move_pos(struct ctf_stream_pos *pos, uint64_t bit_offset)
if (unlikely(pos->offset == EOF))
return;
- if (pos->fd >= 0) {
- /*
- * PROT_READ ctf_packet_seek is called from within
- * ctf_pos_get_event so end of packet does not change
- * the packet context on for the last event of the
- * packet.
- */
- if ((pos->prot == PROT_WRITE)
- && (unlikely(pos->offset + bit_offset >= pos->packet_size))) {
- printf_debug("ctf_packet_seek (before call): %" PRId64 "\n",
- pos->offset);
- ctf_packet_seek(&pos->parent, 0, SEEK_CUR);
- printf_debug("ctf_packet_seek (after call): %" PRId64 "\n",
- pos->offset);
- return;
- }
- }
pos->offset += bit_offset;
printf_debug("ctf_move_pos after increment: %" PRId64 "\n", pos->offset);
}
@@ -201,7 +184,7 @@ int ctf_pos_packet(struct ctf_stream_pos *dummy)
static inline
void ctf_pos_pad_packet(struct ctf_stream_pos *pos)
{
- ctf_move_pos(pos, pos->packet_size - pos->offset);
+ ctf_packet_seek(&pos->parent, 0, SEEK_CUR);
}
static inline
--
1.8.4
More information about the lttng-dev
mailing list