Fix: only serialize a field if it is set
[babeltrace.git] / 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.023153 seconds and 4 git commands to generate.