X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Fcommon%2Fnotif-iter%2Fnotif-iter.c;h=30f9727a10594093266e1dbd90efb9216599bc3a;hb=2b186c3e0b5b7970aa1d0bad341facc4a8580c19;hp=4ac971a9928eadcae7894772590571a8bc947dae;hpb=174e773b037534d485c72a5f558651f2857af243;p=babeltrace.git diff --git a/plugins/ctf/common/notif-iter/notif-iter.c b/plugins/ctf/common/notif-iter/notif-iter.c index 4ac971a9..30f9727a 100644 --- a/plugins/ctf/common/notif-iter/notif-iter.c +++ b/plugins/ctf/common/notif-iter/notif-iter.c @@ -480,7 +480,7 @@ enum bt_ctf_notif_iter_status request_medium_bytes( /* Restart at the beginning of the new medium buffer */ notit->buf.at = 0; - notit->buf.last_eh_at = -1ULL; + notit->buf.last_eh_at = SIZE_MAX; /* New medium buffer size */ notit->buf.sz = buffer_sz; @@ -1173,7 +1173,7 @@ enum bt_ctf_notif_iter_status set_current_packet_content_sizes( enum bt_ctf_notif_iter_status status = BT_CTF_NOTIF_ITER_STATUS_OK; struct bt_ctf_field *packet_size_field = NULL; struct bt_ctf_field *content_size_field = NULL; - uint64_t content_size = -1, packet_size = -1; + uint64_t content_size = -1ULL, packet_size = -1ULL; if (!notit->dscopes.stream_packet_context) { goto end; @@ -1224,7 +1224,16 @@ enum bt_ctf_notif_iter_status set_current_packet_content_sizes( goto end; } - notit->cur_packet_size = packet_size; + if (packet_size != -1ULL) { + notit->cur_packet_size = packet_size; + } else { + /* + * Use the content size as packet size indicator if the + * packet size field is missing. This means there is no + * padding in this stream. + */ + notit->cur_packet_size = content_size; + } notit->cur_content_size = content_size; BT_LOGV("Set current packet and content sizes: " "notit-addr=%p, packet-size=%" PRIu64 ", content-size=%" PRIu64, @@ -1270,7 +1279,7 @@ enum bt_ctf_notif_iter_status read_event_header_begin_state( } else if (packet_at(notit) > notit->cur_content_size) { /* That's not supposed to happen */ BT_LOGV("Before decoding event header field: cursor is passed the packet's content: " - "notit-addr=%p, content-size=%zu, " + "notit-addr=%p, content-size=%" PRId64 ", " "cur=%zu", notit, notit->cur_content_size, packet_at(notit)); status = BT_CTF_NOTIF_ITER_STATUS_ERROR; @@ -1789,7 +1798,7 @@ void bt_ctf_notif_iter_reset(struct bt_ctf_notif_iter *notit) notit->buf.addr = NULL; notit->buf.sz = 0; notit->buf.at = 0; - notit->buf.last_eh_at = -1ULL; + notit->buf.last_eh_at = SIZE_MAX; notit->buf.packet_offset = 0; notit->state = STATE_INIT; notit->cur_content_size = -1;