}
} else {
/* Use file size for packet size */
- packet_index.content_size = filesize * CHAR_BIT;
- /* Use content size if non-zero, else file size */
- packet_index.packet_size = packet_index.content_size ? : filesize * CHAR_BIT;
+ packet_index.packet_size = filesize * CHAR_BIT;
+ /* Use packet size if non-zero, else file size */
+ packet_index.content_size = packet_index.packet_size ? : filesize * CHAR_BIT;
}
/* Validate content size and packet size values */
return -EINVAL;
}
+ if ((packet_index.packet_size >> LOG2_CHAR_BIT) == 0) {
+ fprintf(stderr, "[error] Invalid CTF stream: packet size needs to be at least one byte\n");
+ return -EINVAL;
+ }
+
/* Save position after header and context */
packet_index.data_offset = pos->offset;