From: Alan Modra Date: Mon, 20 Feb 2023 00:44:59 +0000 (+1030) Subject: In-memory nested archives X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c50e4ced39b19ae49748634356c8c37e18427129;p=binutils-gdb.git In-memory nested archives alpha-linuxecoff has compressed archives that are decompressed to a bfd-in-memory. We'd need to handle quite a lot of corner cases to support nesting of such archives, so just stop it before we run into segfaults later. * opncls.c (_bfd_new_bfd_contained_in): Prohibit nested archives in memory. --- diff --git a/bfd/opncls.c b/bfd/opncls.c index eeac5825dbf..f0f4ed55ca4 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -103,6 +103,12 @@ _bfd_new_bfd_contained_in (bfd *obfd) { bfd *nbfd; + /* Nested archives in bims are unsupported. */ + if ((obfd->flags & BFD_IN_MEMORY) != 0) + { + bfd_set_error (bfd_error_malformed_archive); + return NULL; + } nbfd = _bfd_new_bfd (); if (nbfd == NULL) return NULL;