[PATCH] Remove gdb_bfd_stash_filename to fix crash with fix of binutils/11983

Tom Tromey tromey@redhat.com
Tue Jan 7 17:41:00 GMT 2014


>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

Pedro> gdb has been confused and went in circles, with bfd's filename
Pedro> ownership.  In some places, it ended up xmalloc/xstrdup'ing the
Pedro> filename instead of allocating it in the bfd's memory.
Pedro> That resulted in the invention of gdb_bfd_stash_filename
Pedro> https://sourceware.org/ml/gdb-patches/2012-07/msg00291.html
Pedro> as a workaround.

Yeah, in retrospect I should have tried to fix up BFD at that time.

Pedro> I think it'd be better to allocate the filename
Pedro> in the bfd's memory, like it used to be.

I agree.  I think your patch is better due to keeping the same
error-handling approach as the rest of BFD.

Pedro> WDYT?

If you don't mind I think it would be good -- and easy -- to also
implement Doug's suggestion, say a "bfd_set_filename" macro.

Pedro> +/* A wrapper for bfd_strdup that never returns NULL.  */
Pedro> +
Pedro> +char *gdb_bfd_strdup (bfd *abfd, const char *str);

This can be marked ATTRIBUTE_RETURNS_NONNULL.

Tom



More information about the Binutils mailing list