Fix: only serialize a field if it is set
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 3 Feb 2017 01:37:27 +0000 (20:37 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sun, 28 May 2017 16:57:37 +0000 (12:57 -0400)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
formats/ctf/ir/fields.c

index f5b69784b8c16cf065457fa36fb9e3de436924cf..0ad52a020dc05a79095c506ca13941e016187190 100644 (file)
@@ -1903,6 +1903,10 @@ int bt_ctf_field_integer_serialize(struct bt_ctf_field *field,
        struct bt_ctf_field_integer *integer = container_of(field,
                struct bt_ctf_field_integer, parent);
 
+       if (!bt_ctf_field_generic_is_set(field)) {
+               ret = -1;
+               goto end;
+       }
 retry:
        ret = ctf_integer_write(&pos->parent, &integer->definition.p);
        if (ret == -EFAULT) {
@@ -1938,6 +1942,10 @@ int bt_ctf_field_floating_point_serialize(struct bt_ctf_field *field,
        struct bt_ctf_field_floating_point *floating_point = container_of(field,
                struct bt_ctf_field_floating_point, parent);
 
+       if (!bt_ctf_field_generic_is_set(field)) {
+               ret = -1;
+               goto end;
+       }
 retry:
        ret = ctf_float_write(&pos->parent, &floating_point->definition.p);
        if (ret == -EFAULT) {
This page took 0.025462 seconds and 4 git commands to generate.