(open_and_init_dwp_file): Protect against some segvs

This is a "tiny patch", no assignment required.

2017-09-28  Alexander Shaposhnikov <alexander.v.shaposhnikov@gmail.com>

	* dwarf2read.c (open_and_init_dwp_file): Protect against dwp_file
	having NULL cus or tus.
This commit is contained in:
Doug Evans 2017-09-28 09:20:59 -07:00
parent 231ca75323
commit 08302ed2cb
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2017-09-28 Alexander Shaposhnikov <alexander.v.shaposhnikov@gmail.com> (tiny patch)
* dwarf2read.c (open_and_init_dwp_file): Protect against dwp_file
having NULL cus or tus.
2017-09-27 Ulrich Weigand <uweigand@de.ibm.com>
* arm-tdep.c: (convert_from_extended): Remove.

View File

@ -11199,7 +11199,8 @@ open_and_init_dwp_file (void)
dwp_file->tus = create_dwp_hash_table (dwp_file, 1);
/* The DWP file version is stored in the hash table. Oh well. */
if (dwp_file->cus->version != dwp_file->tus->version)
if (dwp_file->cus && dwp_file->tus
&& dwp_file->cus->version != dwp_file->tus->version)
{
/* Technically speaking, we should try to limp along, but this is
pretty bizarre. We use pulongest here because that's the established
@ -11209,7 +11210,13 @@ open_and_init_dwp_file (void)
pulongest (dwp_file->cus->version),
pulongest (dwp_file->tus->version), dwp_name.c_str ());
}
dwp_file->version = dwp_file->cus->version;
if (dwp_file->cus)
dwp_file->version = dwp_file->cus->version;
else if (dwp_file->tus)
dwp_file->version = dwp_file->tus->version;
else
dwp_file->version = 2;
if (dwp_file->version == 2)
bfd_map_over_sections (dwp_file->dbfd, dwarf2_locate_v2_dwp_sections,