[binutils-gdb] asan: alpha-vms: mmember access within null pointer
Alan Modra
amodra@sourceware.org
Wed Aug 26 13:54:25 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c01de193638c9022411ae0542a457b9d68723013
commit c01de193638c9022411ae0542a457b9d68723013
Author: Alan Modra <amodra@gmail.com>
Date: Wed Aug 26 11:32:51 2020 +0930
asan: alpha-vms: mmember access within null pointer
* bfdio.c (bfd_get_file_size): Don't segv on NULL adata.
Diff:
---
bfd/ChangeLog | 4 ++++
bfd/bfdio.c | 18 +++++++++++-------
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fe440e89c6b..c296f6d89a3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2020-08-26 Alan Modra <amodra@gmail.com>
+
+ * bfdio.c (bfd_get_file_size): Don't segv on NULL adata.
+
2020-08-26 Alan Modra <amodra@gmail.com>
PR 26415
diff --git a/bfd/bfdio.c b/bfd/bfdio.c
index 5f144bc7f3f..86b696bba9c 100644
--- a/bfd/bfdio.c
+++ b/bfd/bfdio.c
@@ -493,13 +493,17 @@ bfd_get_file_size (bfd *abfd)
&& !bfd_is_thin_archive (abfd->my_archive))
{
struct areltdata *adata = (struct areltdata *) abfd->arelt_data;
- archive_size = adata->parsed_size;
- /* If the archive is compressed we can't compare against file size. */
- if (adata->arch_header != NULL
- && memcmp (((struct ar_hdr *) adata->arch_header)->ar_fmag,
- "Z\012", 2) == 0)
- return archive_size;
- abfd = abfd->my_archive;
+ if (adata != NULL)
+ {
+ archive_size = adata->parsed_size;
+ /* If the archive is compressed we can't compare against
+ file size. */
+ if (adata->arch_header != NULL
+ && memcmp (((struct ar_hdr *) adata->arch_header)->ar_fmag,
+ "Z\012", 2) == 0)
+ return archive_size;
+ abfd = abfd->my_archive;
+ }
}
file_size = bfd_get_size (abfd);
More information about the Binutils-cvs
mailing list