Fix memory leak in initializing log writers with no local backend

This commit is contained in:
Jon Siwek 2019-12-30 11:17:43 -08:00
parent a961f0b4c4
commit 5e73949327

View file

@ -133,6 +133,11 @@ WriterFrontend::WriterFrontend(const WriterBackend::WriterInfo& arg_info, EnumVa
WriterFrontend::~WriterFrontend() WriterFrontend::~WriterFrontend()
{ {
for ( auto i = 0; i < num_fields; ++i )
delete fields[i];
delete [] fields;
Unref(stream); Unref(stream);
Unref(writer); Unref(writer);
delete info; delete info;
@ -165,7 +170,14 @@ void WriterFrontend::Init(int arg_num_fields, const Field* const * arg_fields)
initialized = true; initialized = true;
if ( backend ) if ( backend )
backend->SendIn(new InitMessage(backend, arg_num_fields, arg_fields)); {
auto fs = new Field*[num_fields];
for ( auto i = 0; i < num_fields; ++i )
fs[i] = new Field(*fields[i]);
backend->SendIn(new InitMessage(backend, arg_num_fields, fs));
}
if ( remote ) if ( remote )
{ {