From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oo1-xc2d.google.com (mail-oo1-xc2d.google.com [IPv6:2607:f8b0:4864:20::c2d]) by sourceware.org (Postfix) with ESMTPS id E19F83858037 for ; Mon, 18 Dec 2023 12:15:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E19F83858037 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 E19F83858037 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::c2d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702901716; cv=none; b=jzm27EJumktZNZDJGCx5ONPRIykHUxOvg519xRFYHz0gsdpo+gAOkUAFLRXNHeMY91/E9wITFGs/Dxdgi+ji5CK2zGPAss5/3tLHHRDW4zk1G8RTMk8bd8Z3qRjlgAdWK2EKsfdt2A9+XuCDPomG3dHWrJ9lHJpUoZzQiG7Wko8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702901716; c=relaxed/simple; bh=shWTIrYFwWdv43BckGm4A7CycI6TUG7drAYNMDjlBsQ=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=CFpOlHehmevvBFIxofZ3+6CEFd9HdgzuvYiI5QO3OcANUP8CxGW6c2WmhCE+TbcxQEphBWEaof7mXqeZIuheLwL0h9pd3d4Rqbmrh8wsTb3WVITUGqkWUJERuiHgFmNQWhQNaQmv5U6981TGg7lCgn11fPjinQRwlNtTMnC56rk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-591a6f1385eso1885661eaf.0 for ; Mon, 18 Dec 2023 04:15:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702901713; x=1703506513; darn=sourceware.org; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=JRzRNkAxBbdBdGKl3BkLb5zcEMilpbOfxN6A/haNxfA=; b=ArqdTtsfqeQ355DdK5ztnyGaQ2o7bJzyyrgTIjIV0h5jhDI9XCjr1FxeZiN+aX77HD rFW7PBEFD9hc5dLRwZu/k6C5FvuoMT47W0Uoecwbhum+O83W9XoP/5+qpU8EP8kjonNW /fpbWLO3anfgyBsp5HfZokydOws5oEKZggN1ZvRBnAogaEn4Uk/2SFet4CsQUTcs8uxj +BihDNxmc58ISMonznlUq+9Es4RWBKoz+YXZA897M1d2GHRP2L+T34Nw7J9ciT8qx4He 87V3EMFT7dOs+EQcw97Eo/oR4bVS6hOJFvg8k1i+eIawOSD6fljPT0c1EQX57CkX5L09 sdbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702901713; x=1703506513; 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=JRzRNkAxBbdBdGKl3BkLb5zcEMilpbOfxN6A/haNxfA=; b=eSOQjS5pgDgmxsa3oNuGSLuHtK7REMm8L0EKo/hiiMYhYsdCoJWC9z4ZNpOIDF/t9E KB1oyIyh7oAqIYhz0TjTy1KSe9QHDMYA6vRXlcNW8jef1hjnGZwER5PxM/jYC0Lip8+Z +F1xi19xPiBbFr8WjMIUF0udmkjwwRLk1NjNApTI73Vkci8sRVTAAX/ZdcGzbLGOWLes eKgqjK5z/jvql+XXvFk/errABYrh9N07YPlDIqID/4rdjZv6iz0ntthG2nqsauTlN6Zm qaGl2h7AJTyBUQdTOKdFyAYiKzzIm/29svYx00oX8twpWmOoCK3Pi33SA+Yc7GxxpJEV XjzA== X-Gm-Message-State: AOJu0YzwJgJSLOyo2ngqXZviDqpxPQQUR8QSiO6fuVJifpUwUDKye78/ AHmpumfQL0zLvcakkRi2VrbF1XgYU7g= X-Google-Smtp-Source: AGHT+IGhcCPy+lYs6xYSMOITbE+VUBeEyi0JNnfPARiND3/S1wi2A0Ba8PDhz7PAUA11QjERRaSCVA== X-Received: by 2002:a05:6358:6f93:b0:170:f1ab:9612 with SMTP id s19-20020a0563586f9300b00170f1ab9612mr10240088rwn.65.1702901713112; Mon, 18 Dec 2023 04:15:13 -0800 (PST) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id r27-20020aa79edb000000b006d60928ca99sm2494397pfq.135.2023.12.18.04.15.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Dec 2023 04:15:12 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id BDA531140102; Mon, 18 Dec 2023 22:45:09 +1030 (ACDT) Date: Mon, 18 Dec 2023 22:45:09 +1030 From: Alan Modra To: binutils@sourceware.org Subject: PR31162, Memory Leak in ldwrite.c Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3034.0 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 List-Id: This isn't a particularly worrying memory leak, but fix it anyway. PR 31162 * ldwrite.c (build_link_order): Use bfd_alloc rather than xmalloc. Add %E to error messages. diff --git a/ld/ldwrite.c b/ld/ldwrite.c index 0e9d7d0a3df..9375644cbd1 100644 --- a/ld/ldwrite.c +++ b/ld/ldwrite.c @@ -57,11 +57,14 @@ build_link_order (lang_statement_union_type *statement) link_order = bfd_new_link_order (link_info.output_bfd, output_section); if (link_order == NULL) - einfo (_("%F%P: bfd_new_link_order failed\n")); + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); link_order->type = bfd_data_link_order; link_order->offset = statement->data_statement.output_offset; - link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE); + link_order->u.data.contents = bfd_alloc (link_info.output_bfd, + QUAD_SIZE); + if (link_order->u.data.contents == NULL) + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); value = statement->data_statement.value; @@ -167,13 +170,15 @@ build_link_order (lang_statement_union_type *statement) link_order = bfd_new_link_order (link_info.output_bfd, output_section); if (link_order == NULL) - einfo (_("%F%P: bfd_new_link_order failed\n")); + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); link_order->offset = rs->output_offset; link_order->size = bfd_get_reloc_size (rs->howto); link_order->u.reloc.p = (struct bfd_link_order_reloc *) - xmalloc (sizeof (struct bfd_link_order_reloc)); + bfd_alloc (link_info.output_bfd, sizeof (struct bfd_link_order_reloc)); + if (link_order->u.reloc.p == NULL) + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); link_order->u.reloc.p->reloc = rs->reloc; link_order->u.reloc.p->addend = rs->addend_value; @@ -219,7 +224,7 @@ build_link_order (lang_statement_union_type *statement) link_order = bfd_new_link_order (link_info.output_bfd, output_section); if (link_order == NULL) - einfo (_("%F%P: bfd_new_link_order failed\n")); + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); if ((i->flags & SEC_NEVER_LOAD) != 0 && (i->flags & SEC_DEBUGGING) == 0) @@ -260,7 +265,7 @@ build_link_order (lang_statement_union_type *statement) link_order = bfd_new_link_order (link_info.output_bfd, output_section); if (link_order == NULL) - einfo (_("%F%P: bfd_new_link_order failed\n")); + einfo (_("%F%P: bfd_new_link_order failed: %E\n")); link_order->type = bfd_data_link_order; link_order->size = statement->padding_statement.size; link_order->offset = statement->padding_statement.output_offset; -- Alan Modra Australia Development Lab, IBM