diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-07-15 20:27:32 +0200 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-07-15 20:27:32 +0200 |
commit | db1ff28b60f8886b8d7c634f1db2f939ba47a13c (patch) | |
tree | ce5564ef7211bb69bef2fbc645608b1490dafc34 /gdb/solib-svr4.c | |
parent | 0a94970d663a053c523f23ac0d71deb25a77f709 (diff) | |
download | gdb-db1ff28b60f8886b8d7c634f1db2f939ba47a13c.zip gdb-db1ff28b60f8886b8d7c634f1db2f939ba47a13c.tar.gz gdb-db1ff28b60f8886b8d7c634f1db2f939ba47a13c.tar.bz2 |
Revert the previous 7 commits of: Validate binary before use
ddc98fbf2fd9e244a215a4d09e559180dc573a14 Create empty nat/linux-maps.[ch] and common/target-utils.[ch]
6e5b4429db0d66e2d0b27e1bcfe4709f3dae73ed Move gdb_regex* to common/
f7af1fcd759fa126612018a5916cf808df7bb8bc Prepare linux_find_memory_regions_full & co. for move
9904185cfde13d6c6849f1f042c8e3b74974cf08 Move linux_find_memory_regions_full & co.
700ca40f6fc1addd7238f4ab57f76c095ad3c99f gdbserver build-id attribute generator
ca5268b6be265580b91ef75c1a1a9815f581ae42 Validate symbol file using build-id
0a94970d663a053c523f23ac0d71deb25a77f709 Tests for validate symbol file using build-id
gdb/ChangeLog
2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com>
Revert the previous 6 commits:
Create empty nat/linux-maps.[ch] and common/target-utils.[ch].
Move gdb_regex* to common/
Prepare linux_find_memory_regions_full & co. for move
Move linux_find_memory_regions_full & co.
gdbserver build-id attribute generator
Validate symbol file using build-id
gdb/gdbserver/ChangeLog
2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com>
Revert the previous 3 commits:
Move gdb_regex* to common/
Move linux_find_memory_regions_full & co.
gdbserver build-id attribute generator
gdb/doc/ChangeLog
2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com>
Revert the previous 2 commits:
gdbserver build-id attribute generator
Validate symbol file using build-id
gdb/testsuite/ChangeLog
2015-07-15 Jan Kratochvil <jan.kratochvil@redhat.com>
Revert the previous commit:
Tests for validate symbol file using build-id.
Diffstat (limited to 'gdb/solib-svr4.c')
-rw-r--r-- | gdb/solib-svr4.c | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 71522c6..909dfb7 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -45,9 +45,6 @@ #include "auxv.h" #include "gdb_bfd.h" #include "probe.h" -#include "rsp-low.h" - -#define NOTE_GNU_BUILD_ID_NAME ".note.gnu.build-id" static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static int svr4_have_link_map_offsets (void); @@ -973,64 +970,6 @@ svr4_keep_data_in_core (CORE_ADDR vaddr, unsigned long size) return (name_lm >= vaddr && name_lm < vaddr + size); } -/* Validate SO by comparing build-id from the associated bfd and - corresponding build-id from target memory. Return NULL for success - or a string for error. Caller must call xfree for the error string. */ - -static char * -svr4_validate (const struct so_list *const so) -{ - const bfd_byte *local_id; - size_t local_idsz; - - gdb_assert (so != NULL); - - /* Target doesn't support reporting the build ID or the remote shared library - does not have build ID. */ - if (so->build_id == NULL) - return NULL; - - /* Build ID may be present in the local file, just GDB is unable to retrieve - it. As it has been reported by gdbserver it is not FSF gdbserver. */ - if (so->abfd == NULL - || !bfd_check_format (so->abfd, bfd_object)) - return NULL; - - /* GDB has verified the local file really does not contain the build ID. */ - if (so->abfd->build_id == NULL) - { - char *remote_hex; - - remote_hex = alloca (so->build_idsz * 2 + 1); - bin2hex (so->build_id, remote_hex, so->build_idsz); - - return xstrprintf (_("remote build ID is %s " - "but local file does not have build ID"), - remote_hex); - } - - local_id = so->abfd->build_id->data; - local_idsz = so->abfd->build_id->size; - - if (so->build_idsz != local_idsz - || memcmp (so->build_id, local_id, so->build_idsz) != 0) - { - char *remote_hex, *local_hex; - - remote_hex = alloca (so->build_idsz * 2 + 1); - bin2hex (so->build_id, remote_hex, so->build_idsz); - local_hex = alloca (local_idsz * 2 + 1); - bin2hex (local_id, local_hex, local_idsz); - - return xstrprintf (_("remote build ID %s " - "does not match local build ID %s"), - remote_hex, local_hex); - } - - /* Both build IDs are present and they match. */ - return NULL; -} - /* Implement the "open_symbol_file_object" target_so_ops method. If no open symbol file, attempt to locate and open the main symbol @@ -1169,12 +1108,6 @@ svr4_copy_library_list (struct so_list *src) newobj->lm_info = xmalloc (sizeof (struct lm_info)); memcpy (newobj->lm_info, src->lm_info, sizeof (struct lm_info)); - if (newobj->build_id != NULL) - { - newobj->build_id = xmalloc (src->build_idsz); - memcpy (newobj->build_id, src->build_id, src->build_idsz); - } - newobj->next = NULL; *link = newobj; link = &newobj->next; @@ -1202,9 +1135,6 @@ library_list_start_library (struct gdb_xml_parser *parser, ULONGEST *lmp = xml_find_attribute (attributes, "lm")->value; ULONGEST *l_addrp = xml_find_attribute (attributes, "l_addr")->value; ULONGEST *l_ldp = xml_find_attribute (attributes, "l_ld")->value; - const struct gdb_xml_value *const att_build_id - = xml_find_attribute (attributes, "build-id"); - const char *const hex_build_id = att_build_id ? att_build_id->value : NULL; struct so_list *new_elem; new_elem = XCNEW (struct so_list); @@ -1216,37 +1146,6 @@ library_list_start_library (struct gdb_xml_parser *parser, strncpy (new_elem->so_name, name, sizeof (new_elem->so_name) - 1); new_elem->so_name[sizeof (new_elem->so_name) - 1] = 0; strcpy (new_elem->so_original_name, new_elem->so_name); - if (hex_build_id != NULL) - { - const size_t hex_build_id_len = strlen (hex_build_id); - - if (hex_build_id_len == 0) - warning (_("Shared library \"%s\" received empty build-id " - "from gdbserver"), new_elem->so_original_name); - else if ((hex_build_id_len & 1U) != 0) - warning (_("Shared library \"%s\" received odd number " - "of build-id \"%s\" hex characters from gdbserver"), - new_elem->so_original_name, hex_build_id); - else - { - const size_t build_idsz = hex_build_id_len / 2; - - new_elem->build_id = xmalloc (build_idsz); - new_elem->build_idsz = hex2bin (hex_build_id, new_elem->build_id, - build_idsz); - if (new_elem->build_idsz != build_idsz) - { - warning (_("Shared library \"%s\" received invalid " - "build-id \"%s\" hex character at encoded byte " - "position %s (first as 0) from gdbserver"), - new_elem->so_original_name, hex_build_id, - pulongest (new_elem->build_idsz)); - xfree (new_elem->build_id); - new_elem->build_id = NULL; - new_elem->build_idsz = 0; - } - } - } *list->tailp = new_elem; list->tailp = &new_elem->next; @@ -1281,7 +1180,6 @@ static const struct gdb_xml_attribute svr4_library_attributes[] = { "lm", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL }, { "l_addr", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL }, { "l_ld", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL }, - { "build-id", GDB_XML_AF_OPTIONAL, NULL, NULL }, { NULL, GDB_XML_AF_NONE, NULL, NULL } }; @@ -3360,5 +3258,4 @@ _initialize_svr4_solib (void) svr4_so_ops.keep_data_in_core = svr4_keep_data_in_core; svr4_so_ops.update_breakpoints = svr4_update_solib_event_breakpoints; svr4_so_ops.handle_event = svr4_handle_solib_event; - svr4_so_ops.validate = svr4_validate; } |