[lttng-dev] [PATCH babeltrace] Fix: Don't create a new packet if ctf_move_pos() seeks out of a packet
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Oct 31 09:19:36 EDT 2013
Merged, thanks!
Mathieu
----- Original Message -----
> From: "Jérémie Galarneau" <jeremie.galarneau at efficios.com>
> To: lttng-dev at lists.lttng.org
> Sent: Tuesday, October 15, 2013 1:23:46 PM
> Subject: [lttng-dev] [PATCH babeltrace] Fix: Don't create a new packet if ctf_move_pos() seeks out of a packet
>
> 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
>
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list