diff options
author | Nick Clifton <nickc@redhat.com> | 2016-01-25 09:35:33 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-01-25 09:35:33 +0000 |
commit | cf466c2ac5ac55bb9b30b96fbdcad564e8c1ccc8 (patch) | |
tree | 1dad670d758246446a6a34602fa2324a92481135 /bfd/mach-o.c | |
parent | 0a01d393e6317b1ea69f8801d2b6546b4aa440ed (diff) | |
download | gdb-cf466c2ac5ac55bb9b30b96fbdcad564e8c1ccc8.zip gdb-cf466c2ac5ac55bb9b30b96fbdcad564e8c1ccc8.tar.gz gdb-cf466c2ac5ac55bb9b30b96fbdcad564e8c1ccc8.tar.bz2 |
Fix memory corruption on Mach-O systems by suppressing a memory tidy up.
PR target/19435
* mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
dsym filename buffer.
Diffstat (limited to 'bfd/mach-o.c')
-rw-r--r-- | bfd/mach-o.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 72454f9..0f39157 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -5798,14 +5798,26 @@ bfd_mach_o_close_and_cleanup (bfd *abfd) if (mdata->dsym_bfd != NULL) { bfd *fat_bfd = mdata->dsym_bfd->my_archive; +#if 0 + /* FIXME: PR 19435: This calculation to find the memory allocated by + bfd_mach_o_follow_dsym for the filename does not always end up + selecting the correct pointer. Unfortunately this problem is + very hard to reproduce on a non Mach-O native system, so until it + can be traced and fixed on such a system, this code will remain + commented out. This does mean that there will be a memory leak, + but it is small, and happens when we are closing down, so it + should not matter too much. char *dsym_filename = (char *)(fat_bfd ? fat_bfd->filename : mdata->dsym_bfd->filename); +#endif bfd_close (mdata->dsym_bfd); mdata->dsym_bfd = NULL; if (fat_bfd) bfd_close (fat_bfd); +#if 0 free (dsym_filename); +#endif } } |