target/arc: fix clang static analyzer warnings

Fixes:
* Removed typo in *bitfields initializations.
* Removed potentional memory leak allocating
  reg_data_type_struct_field/reg_data_type_flags_field objects.
* Initialize buffers with "0" before usage in buf_set_u32().
* Removed memory leak in jim_arc_add_reg().

Change-Id: Iefde57cd4a48c4f3350c376475df8642607f52ff
Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Reviewed-on: http://openocd.zylin.com/5480
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Tested-by: jenkins
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
This commit is contained in:
Evgeniy Didin
2020-02-28 11:14:42 +03:00
committed by Oleksij Rempel
parent 9ee9bdd2f9
commit 39d54ee969
4 changed files with 14 additions and 7 deletions

View File

@@ -1241,11 +1241,11 @@ static void arc_deinit_target(struct target *target)
/* Free arc-specific reg_data_types allocations*/
list_for_each_entry_safe_reverse(type, n, &arc->reg_data_types, list) {
if (type->data_type.type_class == REG_TYPE_CLASS_STRUCT) {
free(type->data_type.reg_type_struct->fields);
free(type->reg_type_struct_field);
free(type->bitfields);
free(type);
} else if (type->data_type.type_class == REG_TYPE_CLASS_FLAGS) {
free(type->data_type.reg_type_flags->fields);
free(type->reg_type_flags_field);
free(type->bitfields);
free(type);
}