mirror of https://github.com/ecmwf/eccodes.git
Tools: fix memory leaks
This commit is contained in:
parent
a39f03398c
commit
8082b4ea78
|
@ -637,6 +637,7 @@ void grib_fieldset_delete(grib_fieldset* set)
|
||||||
grib_fieldset_delete_fields(set);
|
grib_fieldset_delete_fields(set);
|
||||||
grib_fieldset_delete_int_array(set->order);
|
grib_fieldset_delete_int_array(set->order);
|
||||||
grib_fieldset_delete_int_array(set->filter);
|
grib_fieldset_delete_int_array(set->filter);
|
||||||
|
grib_fieldset_delete_order_by(c, set->order_by);
|
||||||
|
|
||||||
grib_context_free(c, set);
|
grib_context_free(c, set);
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,7 @@ static grib_handle* grib_handle_new_from_file_x(grib_context* c, FILE* f, int mo
|
||||||
int grib_tool(int argc, char** argv)
|
int grib_tool(int argc, char** argv)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
int i = 0;
|
||||||
grib_context* c = grib_context_get_default();
|
grib_context* c = grib_context_get_default();
|
||||||
global_options.context = c;
|
global_options.context = c;
|
||||||
|
|
||||||
|
@ -193,6 +194,13 @@ int grib_tool(int argc, char** argv)
|
||||||
|
|
||||||
if (global_options.dump_filename)
|
if (global_options.dump_filename)
|
||||||
fclose(dump_file);
|
fclose(dump_file);
|
||||||
|
|
||||||
|
/* Free memory */
|
||||||
|
for (i = 0; i < global_options.print_keys_count; i++) {
|
||||||
|
if (global_options.print_keys[i].name) {
|
||||||
|
free((char*)global_options.print_keys[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -286,6 +294,9 @@ static int grib_tool_with_orderby(grib_runtime_options* options)
|
||||||
|
|
||||||
grib_tool_finalise_action(options);
|
grib_tool_finalise_action(options);
|
||||||
|
|
||||||
|
grib_fieldset_delete(set);
|
||||||
|
free(filenames);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -722,6 +733,9 @@ static void grib_tools_set_print_keys(grib_runtime_options* options, grib_handle
|
||||||
options->print_keys_count);
|
options->print_keys_count);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
if (options->print_keys[options->print_keys_count].name) {
|
||||||
|
free((char*)options->print_keys[options->print_keys_count].name);
|
||||||
|
}
|
||||||
options->print_keys[options->print_keys_count].name = strdup(name);
|
options->print_keys[options->print_keys_count].name = strdup(name);
|
||||||
if (strlen(name) > options->default_print_width)
|
if (strlen(name) > options->default_print_width)
|
||||||
options->default_print_width = (int)strlen(name);
|
options->default_print_width = (int)strlen(name);
|
||||||
|
|
Loading…
Reference in New Issue