I thought about warning "DW_TAG_member without struct/union parent"
here but decided that doesn't help much as the warning is disconnected
from output. As it is the --map-global-vars code silently ignores
unexpected attributes that might be found in fuzzed files. I'm fine
with that too.
PR 34322
* dwarf.c (get_or_create_member_type): Return NULL on NULL parent.
(insert_element_in_list): Ignore DW_TAG_member without struct
or union parent.
static member_type *
get_or_create_member_type (member_parent *parent, uint64_t die_offset)
{
- assert (parent != NULL);
+ if (parent == NULL)
+ return NULL;
if (parent->member_tail == NULL
|| parent->member_tail->die_offset != die_offset)
{
mt = get_or_create_member_type (union_type_list.tail, die_offset);
else
mt = get_or_create_member_type (struct_type_list.tail, die_offset);
+ if (mt == NULL)
+ break;
if (dw_attr == DW_AT_name)
{