char **buf)
{
FILE *in, *out;
- size_t size;
+ size_t size, buflen;
int ret;
in = *fp;
perror("Error in fclose");
}
/* open for reading */
- *fp = babeltrace_fmemopen(*buf, strlen(*buf), "rb");
+ buflen = strlen(*buf);
+ if (!buflen) {
+ *fp = NULL;
+ return -ENODATA;
+ }
+ *fp = babeltrace_fmemopen(*buf, buflen, "rb");
if (!*fp) {
perror("Metadata fmemopen");
return -errno;
if (packet_metadata(td, fp)) {
ret = ctf_open_trace_metadata_stream_read(td, &fp, &buf);
- if (ret)
+ if (ret) {
+ /* Warn about empty metadata */
+ fprintf(stderr, "[warning] Empty metadata.\n");
goto end_packet_read;
+ }
} else {
unsigned int major, minor;
ssize_t nr_items;
if (path) {
td = fmt->open_trace(path, O_RDONLY, packet_seek, NULL);
if (!td) {
- fprintf(stderr, "[warning] [Context] Cannot open_trace of format %s at path %s.\n\n",
+ fprintf(stderr, "[warning] [Context] Cannot open_trace of format %s at path %s.\n",
format_name, path);
ret = -1;
goto end;