From: Mathieu Desnoyers Date: Thu, 3 Aug 2017 17:28:36 +0000 (-0400) Subject: Fix: fallback on content size if packet size is missing X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=97755805bb8d08ac43f15a3a75beef600b19a424 Fix: fallback on content size if packet size is missing Fixes ctf-testsuite tests/1.8/regression/pass/2-packets-no-packet-size Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- diff --git a/plugins/ctf/common/notif-iter/notif-iter.c b/plugins/ctf/common/notif-iter/notif-iter.c index 33ac2495..674d022f 100644 --- a/plugins/ctf/common/notif-iter/notif-iter.c +++ b/plugins/ctf/common/notif-iter/notif-iter.c @@ -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,