asan: segv in _bfd_archive_close_and_cleanup
authorAlan Modra <amodra@gmail.com>
Tue, 27 Sep 2022 23:52:43 +0000 (09:22 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 28 Sep 2022 00:56:45 +0000 (10:26 +0930)
Uninitialised arelt_data->parent_cache led to this segv.

* pdb.c (pdb_get_elt_at_index): Clear arelt_data.

bfd/pdb.c

index 14e1049d03cfe03f2fca7990a2a3e934825dc693..5d72797c298e1759ae5b48126aa162a89801b063 100644 (file)
--- a/bfd/pdb.c
+++ b/bfd/pdb.c
@@ -193,7 +193,7 @@ pdb_get_elt_at_index (bfd *abfd, symindex sym_index)
     goto fail;
 
   file->arelt_data =
-    (struct areltdata *) bfd_malloc (sizeof (struct areltdata));
+    (struct areltdata *) bfd_zmalloc (sizeof (struct areltdata));
 
   if (!file->arelt_data)
     goto fail;