Fix: Check validity of returned ctf_type_id
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 13 May 2015 15:50:05 +0000 (11:50 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 13 May 2015 15:54:07 +0000 (11:54 -0400)
Reported by Coverity Scan as
** CID 1297897:  Error handling issues  (CHECKED_RETURN)
/formats/ctf/ir/visitor.c: 726 in print_path()

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
formats/ctf/ir/visitor.c

index 6fc6e30ed679359df9f1527ca10f24dfc56c687f..9082138d6669151eb549a25fbefc8ac25ee715c6 100644 (file)
@@ -722,10 +722,16 @@ void print_path(const char *field_name,
                struct bt_ctf_field_path *field_path)
 {
        int i;
                struct bt_ctf_field_path *field_path)
 {
        int i;
+       enum ctf_type_id type_id = bt_ctf_field_type_get_type_id(
+               resolved_type);
+
+       if (type_id < CTF_TYPE_UNKNOWN || type_id >= NR_CTF_TYPES) {
+               type_id = CTF_TYPE_UNKNOWN;
+       }
 
        printf_verbose("Resolved field \"%s\" as type \"%s\", ",
                field_name,
 
        printf_verbose("Resolved field \"%s\" as type \"%s\", ",
                field_name,
-               type_names[bt_ctf_field_type_get_type_id(resolved_type)]);
+               type_names[type_id]);
        printf_verbose("path: %s",
                absolute_path_prefixes[field_path->root]);
 
        printf_verbose("path: %s",
                absolute_path_prefixes[field_path->root]);
 
This page took 0.024356 seconds and 4 git commands to generate.