Cleanup error messages
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 14 Feb 2013 22:25:21 +0000 (17:25 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 14 Feb 2013 22:25:21 +0000 (17:25 -0500)
Ensure we print a more meaningful error message when empty metadata
string is encountered.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
formats/ctf/ctf.c
lib/context.c

index deb9a66d195d989d98373346423ca407d9dde494..552133c3238719ecc63a1acfb2fa3f27831b24ab 100644 (file)
@@ -961,7 +961,7 @@ int ctf_open_trace_metadata_stream_read(struct ctf_trace *td, FILE **fp,
                                        char **buf)
 {
        FILE *in, *out;
-       size_t size;
+       size_t size, buflen;
        int ret;
 
        in = *fp;
@@ -1003,7 +1003,12 @@ int ctf_open_trace_metadata_stream_read(struct ctf_trace *td, FILE **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;
@@ -1060,8 +1065,11 @@ int ctf_open_trace_metadata_read(struct ctf_trace *td,
 
        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;
index d06742231604b6b4ea55f32a5e2deeea32e8fd71..b728298cb799c43f16300238004ccc29633ecf43 100644 (file)
@@ -90,7 +90,7 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path,
        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;
This page took 0.026931 seconds and 4 git commands to generate.