Fix: validate return value of bt_ctf_field_get_type_id
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 30 May 2016 06:26:04 +0000 (02:26 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 30 May 2016 06:26:04 +0000 (02:26 -0400)
Reported by Coverity as
CID 1351739 (#1 of 1): Unchecked return value (CHECKED_RETURN)

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

index 123c3153a60cef91e8b716ba5813b0669b4f06bc..105dd7a1dbe737317a3114c08a9f617710c55c8a 100644 (file)
@@ -2339,12 +2339,19 @@ void bt_ctf_field_sequence_freeze(struct bt_ctf_field *field)
 BT_HIDDEN
 void bt_ctf_field_freeze(struct bt_ctf_field *field)
 {
+       enum bt_ctf_type_id type_id;
+
        if (!field) {
                goto end;
        }
 
-       field_freeze_funcs[bt_ctf_field_get_type_id(field)](field);
+       type_id = bt_ctf_field_get_type_id(field);
+       if (type_id <= BT_CTF_TYPE_ID_UNKNOWN ||
+                       type_id >= BT_CTF_NR_TYPE_IDS) {
+               goto end;
+       }
 
+       field_freeze_funcs[type_id](field);
 end:
        return;
 }
This page took 0.026215 seconds and 4 git commands to generate.