+2018-07-20 Nick Clifton <nickc@redhat.com>
+
+ * objcopy.c (add_specific_symbols): Free buffer on exit.
+ (add_redefine_syms_file): Close file handle on exit.
+ (copy_object): Close file handle on early exit.
+ Free buffer on early exit.
+ Free gaps buffers once they are no longer needed.
+ * dwarf.c (display_debug_frames): Free allocated memory on exit.
+ (load_separate_debug_info): Free allocate memory on early exit.
+
2018-07-20 Chenghua Xu <paul.hua.gm@gmail.com>
Maciej W. Rozycki <macro@mips.com>
unsigned char *start = section->start;
unsigned char *end = start + section->size;
unsigned char *section_start = start;
- Frame_Chunk *chunks = 0, *forward_refs = 0;
- Frame_Chunk *remembered_state = 0;
+ Frame_Chunk *chunks = NULL, *forward_refs = NULL;
+ Frame_Chunk *remembered_state = NULL;
Frame_Chunk *rs;
- int is_eh = strcmp (section->name, ".eh_frame") == 0;
+ bfd_boolean is_eh = strcmp (section->name, ".eh_frame") == 0;
unsigned int length_return;
unsigned int max_regs = 0;
const char *bad_reg = _("bad register: ");
printf ("\n");
+ while (remembered_state != NULL)
+ {
+ rs = remembered_state;
+ remembered_state = rs->next;
+ free (rs->col_type);
+ free (rs->col_offset);
+ rs->next = NULL; /* Paranoia. */
+ free (rs);
+ }
+
+ while (chunks != NULL)
+ {
+ rs = chunks;
+ chunks = rs->next;
+ free (rs->col_type);
+ free (rs->col_offset);
+ rs->next = NULL; /* Paranoia. */
+ free (rs);
+ }
+
+ while (forward_refs != NULL)
+ {
+ rs = forward_refs;
+ forward_refs = rs->next;
+ free (rs->col_type);
+ free (rs->col_offset);
+ rs->next = NULL; /* Paranoia. */
+ free (rs);
+ }
+
return 1;
}
if (debugfile == NULL)
{
warn (_("Out of memory"));
+ free (canon_dir);
return NULL;
}
line = eol;
line_count ++;
}
+
+ free (buffer);
}
/* See whether a symbol should be stripped or kept
fatal (_("%s:%d: premature end of file"), filename, lineno);
free (buf);
+ fclose (file);
}
/* Copy unknown object file IBFD onto OBFD.
pdump->filename,
strerror (errno));
free (contents);
+ fclose (f);
return FALSE;
}
}
off, now))
{
bfd_nonfatal_message (NULL, obfd, osections[i], NULL);
+ free (buf);
return FALSE;
}
}
}
}
+
+ free (buf);
+ free (gaps);
+ gaps = NULL;
}
/* Allow the BFD backend to copy any private data it understands