[lttng-dev] [PATCH babeltrace] Fix lint warnings
Jérémie Galarneau
jeremie.galarneau at efficios.com
Thu Nov 14 19:40:57 EST 2013
** CID 1125105: Unchecked close() return value
formats/ctf/writer/stream.c: 521
** CID 1124085: Use after free
formats/ctf/writer/event-fields.c: 1128
** CID 1124088: Dereference before null check
formats/ctf/writer/stream.c: 371
Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
---
formats/ctf/writer/event-fields.c | 7 +++++--
formats/ctf/writer/stream.c | 7 +++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/formats/ctf/writer/event-fields.c b/formats/ctf/writer/event-fields.c
index 30fe578..ff970c0 100644
--- a/formats/ctf/writer/event-fields.c
+++ b/formats/ctf/writer/event-fields.c
@@ -1125,7 +1125,10 @@ int bt_ctf_field_structure_serialize(struct bt_ctf_field *field,
while (!ctf_pos_access_ok(pos,
offset_align(pos->offset,
field->type->declaration->alignment))) {
- increase_packet_size(pos);
+ ret = increase_packet_size(pos);
+ if (ret) {
+ goto end;
+ }
}
ctf_align_pos(pos, field->type->declaration->alignment);
@@ -1139,7 +1142,7 @@ int bt_ctf_field_structure_serialize(struct bt_ctf_field *field,
break;
}
}
-
+end:
return ret;
}
diff --git a/formats/ctf/writer/stream.c b/formats/ctf/writer/stream.c
index f03f170..ac89429 100644
--- a/formats/ctf/writer/stream.c
+++ b/formats/ctf/writer/stream.c
@@ -368,7 +368,7 @@ int bt_ctf_stream_flush(struct bt_ctf_stream *stream)
int ret = 0;
size_t i;
uint64_t timestamp_begin, timestamp_end;
- struct bt_ctf_stream_class *stream_class = stream->stream_class;
+ struct bt_ctf_stream_class *stream_class;
struct bt_ctf_field *integer = NULL;
struct ctf_stream_pos packet_context_pos;
@@ -385,6 +385,7 @@ int bt_ctf_stream_flush(struct bt_ctf_stream *stream)
stream->flush.func(stream, stream->flush.data);
}
+ stream_class = stream->stream_class;
timestamp_begin = ((struct bt_ctf_event *) g_ptr_array_index(
stream->events, 0))->timestamp;
timestamp_end = ((struct bt_ctf_event *) g_ptr_array_index(
@@ -518,7 +519,9 @@ void bt_ctf_stream_destroy(struct bt_ctf_ref *ref)
stream = container_of(ref, struct bt_ctf_stream, ref_count);
ctf_fini_pos(&stream->pos);
- close(stream->pos.fd);
+ if (close(stream->pos.fd)) {
+ perror("close");
+ }
bt_ctf_stream_class_put(stream->stream_class);
g_ptr_array_free(stream->events, TRUE);
g_free(stream);
--
1.8.4.2
More information about the lttng-dev
mailing list