From patchwork Wed Oct 25 00:43:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 78486 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 716C1385782B for ; Wed, 25 Oct 2023 00:44:18 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by sourceware.org (Postfix) with ESMTPS id 79E553857806 for ; Wed, 25 Oct 2023 00:44:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 79E553857806 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 79E553857806 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::632 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698194641; cv=none; b=ovzOrQphtLxvZFjSgDHOLU///lW4DMOBxtQjgmZxWLO6wmFzW4+tcNf9h5lzBj9fg+NfCUsheabkIeDG4zqrFdnq95XWS6QI5o8Dv/OXSd8ulcIUQeTen+RfTQjVc/yXxvnlgknHJYlF5RnlvwF8aCbGXtB+YzKNsKTtkZz04jY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698194641; c=relaxed/simple; bh=sTLMof2/FEA/maeDG9dCcNzTBV5NXJuzyZJgEeKCOEA=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=xGI4H9ZrcA9/sGjxjCRloX2b+L/Gx7D37MtCqbgJCcL62kdj6CwbrGD5gCD5mmX9l7jDtSmD6eiYrgdwIEZhw8KaIHBjokeASIKdVSEAvDp5lURD3kbdQAlVn3/humHDP64yLVWm/CZpGCh8WJP00vGIUxB9um5rRYbhlO/1WUA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1c9c5a1b87bso33732825ad.3 for ; Tue, 24 Oct 2023 17:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698194639; x=1698799439; darn=sourceware.org; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=/J+3csfOGHmah96oa7tQl0y8OMGWU4SNvx0blo61tWg=; b=km5JWkNOqnv/eGFtERdW6Uq/oozKzR9IV/B9C5jcKYeS2q5XcRt0j/ZEBZZbBLvC0w i1v/NlhP5HGoucISeYW61EjEpP6ufIrC+1QLYZ3t/qWUoe3ZKrN4dEeiL/+p/frihwGl 1T+askWkjlNtNVY/NjHE4qkstQvuV6pQdjZ/ri/Th34yHZcMjJCR8xIIEVCw4gDyQ7mF KS2YHfnyJkHLaB5pL/Ps5sS994vEdd9VVcgd2xhrj/yT5HHYWxijvUvxY9aR6YHuJ3+l HvJFBwyYYr3DYP71TRu5yEp3E5uCfu9wzGV+9tfcT9x4edDgm+BY8gnS9WOi5UbgXyP+ MWug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698194639; x=1698799439; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/J+3csfOGHmah96oa7tQl0y8OMGWU4SNvx0blo61tWg=; b=nwjSqKDHaRw9aWPL1sT07gXAB2M7LNIRiSw1dIUzjwbF+GPTkmYBwdz+KlfqAZvWu1 /XnjeZ39sKCZb+Sxcjidrkjy3unz2bM2iB8S7V1rSHdX2xTo9bpJnk1GpQNFdO03oHlY VXE6lywTrHenYlFLt21bjgoYP4Pip5Ggyhod0Lho42bGsP8zORhBcOlRYqQeKAsY0Psh RzgJNStfjZ4aNFR5l0w6pI4vR0L1/EaTeMOPqq/3OPB5iRWEGtm/79GTcwzPhGjWWny9 jAoP7XLOphHI/2m1xMgRuLj8SCNXgjvsFgPWxp6Imlo3kBlsI7hgOarLbB+kNVx7sd+c tEEg== X-Gm-Message-State: AOJu0Yw8fk/Jy2iznyv7ezNYURDLKWsoRep8Abzi0I4TuDD0fFa1qQfN W6XU8BZRk6R9qv5wn3iy7QU/dMSOj+4= X-Google-Smtp-Source: AGHT+IHTrzF+CxxFyJpnfwiw1W42teFFZr46hXtcPtjoWulTcGbe2ldxYzpKBogaAGp0NOzh21YZxg== X-Received: by 2002:a17:902:c74b:b0:1c6:25c2:e784 with SMTP id q11-20020a170902c74b00b001c625c2e784mr9540349plq.35.1698194639039; Tue, 24 Oct 2023 17:43:59 -0700 (PDT) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:a1d2:9bb8:b2a0:9a4f]) by smtp.gmail.com with ESMTPSA id je7-20020a170903264700b001c9b5b63e36sm8058558plb.32.2023.10.24.17.43.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Oct 2023 17:43:58 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 6D6631142472; Wed, 25 Oct 2023 11:13:56 +1030 (ACDT) Date: Wed, 25 Oct 2023 11:13:56 +1030 From: Alan Modra To: binutils@sourceware.org Subject: asan: _bfd_elf_slurp_version_tables memory leak Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3033.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Extends commit 6136093c0d00 to handle verdefs as well as verrefs. PR 30886 * elf.c (_bfd_elf_slurp_version_tables): See free_contents for verdefs too. Use free_contents rather than elf_tdata fields. diff --git a/bfd/elf.c b/bfd/elf.c index b5b0c69e097..bd2a5e43551 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -9571,7 +9571,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) } elf_tdata (abfd)->cverrefs = i; - if (elf_tdata (abfd)->dt_verneed == NULL) + if (free_contents) free (contents); contents = NULL; } @@ -9618,6 +9618,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) if (contents == NULL) goto error_return_verdef; + free_contents = true; BFD_ASSERT (sizeof (Elf_External_Verdef) >= sizeof (Elf_External_Verdaux)); @@ -9767,7 +9768,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) ((bfd_byte *) everdef + iverdef->vd_next)); } - if (elf_tdata (abfd)->dt_verdef == NULL) + if (free_contents) free (contents); contents = NULL; }