From patchwork Tue Dec 5 07:48:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 173769 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3270085vqy; Mon, 4 Dec 2023 23:48:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IFl/E+ego55b2N+gRdE+bSAKxKpgLGmmJAMdWJjisSphBK4aM89dQAr5ry5XGmVWIxYbTbL X-Received: by 2002:ac8:7dca:0:b0:425:4043:50ef with SMTP id c10-20020ac87dca000000b00425404350efmr956345qte.126.1701762524305; Mon, 04 Dec 2023 23:48:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1701762524; cv=pass; d=google.com; s=arc-20160816; b=JguYJV7lupv7aa6klWxtgemMAWCT/C6XPXXOAQxn/FhtNw70q1HJi2Z/XGdYBvwkz7 A56tJxeEcSyE0L7j+DUmcpTn7YoTG/YRF/O6+voIY0qivYqCEgHp3s7O0xu217Zjcjo6 8Cou08iQSD76/PU6wwYoIP3tlFJQGQFOH3/00DUQxZKaX1ixMVoePaB7GNs2Dyvqz95t Ia5ZhLVR6RvpaRFcV1eSChrViXlWFzSzL29InR1p1dhWYXotNP76cODK12L5rp/4bvvL v3HrTHYt8BRmxgkgrDI/y4dkHWomqFAERsoQLxTBCWOMALIPkmg6W/zMVuADZf06axdo S3VQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-disposition :mime-version:message-id:subject:to:from:date:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=AmfGPSHMBsszd77hNzqqfr7IHefK3wE0k2DXK27tuMo=; fh=NLxAvL/bDfPg4AGOtxqvQlND8vazkZrNzKLY8+LAbBY=; b=meAU4XBirUgwlD00uuSiVsm6N5m7qsmMVuoD5L8ixEV1GK70SSjALXroAlca6SEHIE hm0lvyFV9VcBxdKGfconwEOmfyNgOuRTz+qU9zyC+v9v20sXTxk4u5TzbaaHRd+v2Uk8 C2Ui3hf+0VbvyRggCfJ16ILwv/bzBZGf0k64ppLP3IhwYN9mrIBDSsTwOLke7PwoQE+0 Nwj9qPJwuGKB+qIsefrk8GNKeTBAwBR9iTBuTCeb68bMzMDvpa27+sRKNOmMxog8SZgn ny3x+ZtXASRNS50KLHifc+nHxj4Ht/3b4IV0mB+/dqOBCrss+CglB7DHbzt/QlMuSOKz JZuQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=e82J0rLo; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id fb22-20020a05622a481600b0042378b49fcasi12545482qtb.432.2023.12.04.23.48.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 23:48:44 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=e82J0rLo; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 13E9D3861847 for ; Tue, 5 Dec 2023 07:48:44 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pg1-x534.google.com (mail-pg1-x534.google.com [IPv6:2607:f8b0:4864:20::534]) by sourceware.org (Postfix) with ESMTPS id A429C3858032 for ; Tue, 5 Dec 2023 07:48:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A429C3858032 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 A429C3858032 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::534 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701762520; cv=none; b=ROmBE++S0XzwrMMhP+LF99SMLTrPqRCGNCNLuStWNF2+54+pSsl7M0D9hc/LMCRaqNYA3xNGUFR91ZdR+780MFPKQvHEvq1TQqXJbdTKRM8ChaVNfIfouzqvnwwdqlRtFyS4YtMFaVAkWIQAmbtkVWCsgpwNDKFVJhkO58kL6OU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701762520; c=relaxed/simple; bh=VX/3zwgKXarYXZHMnZaKNHC091fUlPlVITTanLmdYgo=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=SfcvT2Pjdm/YmCRBZgmQTMSw5d+YedPLRJttYLf/SIqJEH+L4S32hwSJvQbdCchaQJmul+962Q8TQLr/49iusw7VizVGsreqyBRc1AWPGdc1uyCRYIUoZlaRID4+H54s9kBb202R0CF9/Hpup472nt1X+ecZ0/himDoJkFCB1TA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-5c664652339so1203821a12.1 for ; Mon, 04 Dec 2023 23:48:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701762516; x=1702367316; darn=sourceware.org; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=AmfGPSHMBsszd77hNzqqfr7IHefK3wE0k2DXK27tuMo=; b=e82J0rLoaWQfxvf1n20V+TIkSPHujzqjPwf6/VRV8MTHQUR0CMipuPd4oOgmnpEEzk SOlrzMCGu5UGAQqm2GU9MxOXYNO5Yr4+xbtysKSjqSZSMlKesgA9UKmRoVZ6frW2+BI4 sgNgfwdcwRwGfLO/EZ6i2n+bEmz7GwLA7hozAA1uDmz5pCOGDvPTFkea3rn3ZMUqCkRr UzdLpzppsmbTJtaPX8zERIXE9ptlTl1BS9c0FmqLHAU/s6p9znnbdHTZ8AZXYYAnfAZN VE8LKhFSW86pO0YlVkLu3TdZV1rgvYSVln68E2wKlH/By9nvSwP2n4OV9o99Y0MLXVag icmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701762516; x=1702367316; 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=AmfGPSHMBsszd77hNzqqfr7IHefK3wE0k2DXK27tuMo=; b=bx5r+A6MQ3UavcCwYkydYHar5ZfogrghVd51YZZpAxGoa6GBBPPiagyGoidDjMZlgq LeGf9ih5Dl/hunFI6SD1Jlb+K68DZxnbISrovzeX6Nzc0rjtBH/V1abXBi78rbThcXZ+ /U/frHLnYKQGYs/bVDcI59zPq84p7HDW1ZHbk4wknx4lKWM56GYH5d3xdwFb79NINf7+ BvQsBUb8Igs94Fx6CL867bObbHesx4qnOrYcyiE20KQ7VPJLQ7LqNTBG8FGDhxMByCMu 2Ay3Bye+e6E/kJybzorBZdll2o5tVAYujUBMEQ3eN7sqG8/qxN92NCYLgHtZOhgO4xdF mO/Q== X-Gm-Message-State: AOJu0YxJ+ga3ir5JjK+s4oS9W25zicfEeivfaIJXWkyDuIlwSSOr15el 0LyZE5GAf7CcMw93NZE2LSGRBxeYQVk= X-Received: by 2002:a05:6a20:320d:b0:18f:97c:8264 with SMTP id hl13-20020a056a20320d00b0018f097c8264mr2731808pzc.110.1701762515984; Mon, 04 Dec 2023 23:48:35 -0800 (PST) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:ec60:c989:25cc:40fd]) by smtp.gmail.com with ESMTPSA id f7-20020a170902ce8700b001cf83962743sm3436946plg.250.2023.12.04.23.48.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 23:48:35 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id A0A6F114096D; Tue, 5 Dec 2023 18:18:32 +1030 (ACDT) Date: Tue, 5 Dec 2023 18:18:32 +1030 From: Alan Modra To: binutils@sourceware.org Subject: Don't use free_contents in _bfd_elf_slurp_version_tables 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, T_SCC_BODY_TEXT_LINE 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+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784427340612467950 X-GMAIL-MSGID: 1784427340612467950 In commit 7ac6d0c38c36 I made more use of free_contents in _bfd_elf_slurp_version_tables, a variable added to tag the case where raw verneed and verdefs have been read locally by the function, and thus should be freed before returning. In retrospect it may have been better to do without the extra variable entirely. It's easy to infer when "contents" should be freed, costing a little extra on an error path but costing less elsewhere. * elf.c (_bfd_elf_slurp_version_tables): Don't use free_contents. diff --git a/bfd/elf.c b/bfd/elf.c index 08b6df5503e..db45d1a074b 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -9433,7 +9433,6 @@ bool _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) { bfd_byte *contents = NULL; - bool free_contents = false; unsigned int freeidx = 0; size_t amt; @@ -9476,7 +9475,6 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) if (contents == NULL) goto error_return_verref; - free_contents = true; verneed_size = hdr->sh_size; verneed_count = hdr->sh_info; } @@ -9605,7 +9603,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) } elf_tdata (abfd)->cverrefs = i; - if (free_contents) + if (contents != elf_tdata (abfd)->dt_verneed) free (contents); contents = NULL; } @@ -9652,7 +9650,6 @@ _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)); @@ -9802,7 +9799,7 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) ((bfd_byte *) everdef + iverdef->vd_next)); } - if (free_contents) + if (contents != elf_tdata (abfd)->dt_verdef) free (contents); contents = NULL; } @@ -9858,7 +9855,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver) return true; error_return: - if (free_contents) + if (contents != elf_tdata (abfd)->dt_verneed + && contents != elf_tdata (abfd)->dt_verdef) free (contents); return false; }