X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fwriter%2Fwriter.c;h=ad268ebf74aa6fc28c4615fb901ff9004031c89d;hb=56fa591a63fb032d2689a9a45a3814e1677212dd;hp=c9ec3479a8cb849541722288e2058796bf54b447;hpb=bc506aa5ed05112f88f00cb451cba8fdf3abcb01;p=babeltrace.git diff --git a/plugins/writer/writer.c b/plugins/writer/writer.c index c9ec3479..ad268ebf 100644 --- a/plugins/writer/writer.c +++ b/plugins/writer/writer.c @@ -45,6 +45,8 @@ void destroy_writer_component_data(struct writer_component *writer_component) g_hash_table_destroy(writer_component->stream_map); g_hash_table_destroy(writer_component->stream_class_map); g_hash_table_destroy(writer_component->trace_map); + g_string_free(writer_component->base_path, true); + g_string_free(writer_component->trace_name_base, true); } static @@ -90,7 +92,12 @@ struct writer_component *create_writer_component(void) writer_component->err = stderr; writer_component->trace_id = 0; - snprintf(writer_component->trace_name_base, NAME_MAX, "trace"); + writer_component->trace_name_base = g_string_new("trace"); + if (!writer_component->trace_name_base) { + g_free(writer_component); + writer_component = NULL; + goto end; + } /* * Reader to writer corresponding structures. @@ -233,7 +240,11 @@ enum bt_component_status writer_component_init( goto error; } - strncpy(writer_component->base_path, path, PATH_MAX); + writer_component->base_path = g_string_new(path); + if (!writer_component) { + ret = BT_COMPONENT_STATUS_ERROR; + goto error; + } ret = bt_component_set_destroy_cb(component, destroy_writer_component); @@ -256,6 +267,7 @@ end: return ret; error: destroy_writer_component_data(writer_component); + g_free(writer_component); return ret; }