From 9f56e4500aa99bb2cd644a7c1a539fc66f3753b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Thu, 14 Nov 2013 19:40:57 -0500 Subject: [PATCH] Fix lint warnings MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ** 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 Signed-off-by: Mathieu Desnoyers --- 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 30fe5783..ff970c0a 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 f03f170d..ac894297 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); -- 2.34.1