diff options
author | Nick Clifton <nickc@redhat.com> | 2013-06-24 14:28:17 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2013-06-24 14:28:17 +0000 |
commit | cd6d434c14735b0f374bada533793bbad5393e19 (patch) | |
tree | 58e591167607f2e5f0779614fb33f4b783b267ce | |
parent | 48a938971023f56aea9ecf84ab5493493b3b9875 (diff) | |
download | gdb-cd6d434c14735b0f374bada533793bbad5393e19.zip gdb-cd6d434c14735b0f374bada533793bbad5393e19.tar.gz gdb-cd6d434c14735b0f374bada533793bbad5393e19.tar.bz2 |
PR 15657
* hash.c (_bfd_stringtab_add): Copy the string if COPY is true.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/hash.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f80ccef..19c4c5f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2013-06-24 Wawa <caojinyu@msn.com> + + PR 15657 + * hash.c (_bfd_stringtab_add): Copy the string if COPY is true. + 2013-06-23 Richard Sandiford <rdsandiford@googlemail.com> * Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Move MIPS ELF @@ -808,7 +808,8 @@ _bfd_stringtab_free (struct bfd_strtab_hash *table) /* Get the index of a string in a strtab, adding it if it is not already present. If HASH is FALSE, we don't really use the hash - table, and we don't eliminate duplicate strings. */ + table, and we don't eliminate duplicate strings. If COPY is true + then store a copy of STR if creating a new entry. */ bfd_size_type _bfd_stringtab_add (struct bfd_strtab_hash *tab, @@ -834,11 +835,13 @@ _bfd_stringtab_add (struct bfd_strtab_hash *tab, entry->root.string = str; else { + size_t len = strlen (str) + 1; char *n; - n = (char *) bfd_hash_allocate (&tab->table, strlen (str) + 1); + n = (char *) bfd_hash_allocate (&tab->table, len); if (n == NULL) return (bfd_size_type) -1; + memcpy (n, str, len); entry->root.string = n; } entry->index = (bfd_size_type) -1; |