Browse Source

gas: Fix a CFI label name memory leak in scfi.c

CFI label name can be freed only after use.

	* scfi.c (handle_scfi_dot_cfi): Free CFI label name after use.
	* scfidw2gen.c (scfi_process_cfi_label): Add a comment.  Remove
	TODO on freeing CFI label name.
master
H.J. Lu 2 years ago
parent
commit
cafca5eaa0
  1. 1
      gas/scfi.c
  2. 4
      gas/scfidw2gen.c

1
gas/scfi.c

@ -1141,6 +1141,7 @@ handle_scfi_dot_cfi (ginsnS *ginsn)
break; break;
case CFI_label: case CFI_label:
scfi_dot_cfi (CFI_label, 0, 0, 0, op->op_data->name, ginsn->sym); scfi_dot_cfi (CFI_label, 0, 0, 0, op->op_data->name, ginsn->sym);
free ((char *) op->op_data->name);
break; break;
case CFI_signal_frame: case CFI_signal_frame:
scfi_dot_cfi (CFI_signal_frame, 0, 0, 0, NULL, ginsn->sym); scfi_dot_cfi (CFI_signal_frame, 0, 0, 0, NULL, ginsn->sym);

4
gas/scfidw2gen.c

@ -57,8 +57,8 @@ scfi_process_cfi_label (void)
frch_ginsn_data_append (ginsn); frch_ginsn_data_append (ginsn);
scfi_op_add_cfi_label (ginsn, name); scfi_op_add_cfi_label (ginsn, name);
/* TODO. */ /* NB: Can't free NAME here since it will be used later. Free it in
// free (name); handle_scfi_dot_cfi after it is unused. */
demand_empty_rest_of_line (); demand_empty_rest_of_line ();
} }

Loading…
Cancel
Save