From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 840473858416 for ; Thu, 21 Oct 2021 21:34:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 840473858416 Received: from mail-ua1-f69.google.com (mail-ua1-f69.google.com [209.85.222.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-176-9bOoWiHdPPC0gm_BR_-_9Q-1; Thu, 21 Oct 2021 17:34:48 -0400 X-MC-Unique: 9bOoWiHdPPC0gm_BR_-_9Q-1 Received: by mail-ua1-f69.google.com with SMTP id 69-20020a9f21cb000000b002cb2d7cc2b2so924112uac.19 for ; Thu, 21 Oct 2021 14:34:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sQGLK+HQj0L9A5iNcGOyoE/XD+gncQUS4NVOp6tbWso=; b=yXWvUYHJSfsHTkptU06MOWulxL1/V/+2YqMz/rMH6s1Q9LmigNHNTz6NIKFftrMhlJ vQojUSdGDg+LTU1+TUjq0tDkw9rqhqg81nwKuM4vi0Do6LU3oDzrSbo7U9jEySmcQRcT GSUoX4iJwPcbytuphsLkfXj9wPYLPP2j1EGC3MHYW+2NOTeBJrHvVATNR6M6kALGZvJw xQMnJfp36BaihJMxIBCaIwG/rHJLm8b3riTXccss3HPkWfZqGVPBtPWhvnV+HojAomDW 6OoLJBsbpzcIisX5vwQxg+TNtF/ZeBnD5lKZK1I0hEeXBwEaqcHIW4xXiDpGcJSSJO+h 3K8Q== X-Gm-Message-State: AOAM531yVmZ1+s280vT/ODZWwZCn26MnjurueGFMDGTvJyi+HI+VaBJn yxhg+kMqVl/KgM+8EAesJ38NKhWGW6xVtTwYgw9gHGrDBai/X+XtAPhtoRC1zkv4LMrJ2F6otL6 T1d1vUnEwp0Is++HSox9ZaLpBtzL7I+oNWg== X-Received: by 2002:ab0:1447:: with SMTP id c7mr9415798uae.2.1634852088078; Thu, 21 Oct 2021 14:34:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxj5pqu7lV9/lYQtRO6dN+FoBCVzF0BCL9S/sxu3BgP+P9AzjSkL+lC/6Gjul4Fhcmvx1sewTda4M84L0nWNSg= X-Received: by 2002:ab0:1447:: with SMTP id c7mr9415776uae.2.1634852087873; Thu, 21 Oct 2021 14:34:47 -0700 (PDT) MIME-Version: 1.0 References: <20211021132834.636383-1-jwakely@redhat.com> <2dfa49c9-d55e-8169-616a-ff48a957fb61@redhat.com> In-Reply-To: <2dfa49c9-d55e-8169-616a-ff48a957fb61@redhat.com> From: Jonathan Wakely Date: Thu, 21 Oct 2021 22:34:37 +0100 Message-ID: Subject: [PATCH v2] c++tools: Fix memory leak To: Jason Merrill Cc: "libstdc++" , gcc Patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000f5754c05cee3a9e0" X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Oct 2021 21:34:51 -0000 --000000000000f5754c05cee3a9e0 Content-Type: text/plain; charset="UTF-8" On Thu, 21 Oct 2021 at 20:38, Jason Merrill wrote: > On 10/21/21 09:28, Jonathan Wakely wrote: > > #else > > buffer = xmalloc (stat.st_size); > > if (!buffer) > > return -errno; > > + struct Deleter { void operator()(void* p) const { free(p); } }; > > + std::unique_ptr guard; > > Don't you need to initialize guard from buffer? > Oops, yes! Updated patch attached. --000000000000f5754c05cee3a9e0 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kv1gppl00 Y29tbWl0IGIyODBmNmI1YjQzMzk1ODY0NDZlZWM5OWU0OTA3NGUwOTFjMjdlYTUKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBUaHUgT2N0IDIxIDIy OjMyOjIzIDIwMjEKCiAgICBjKyt0b29sczogRml4IG1lbW9yeSBsZWFrCiAgICAKICAgIFRoZSBh bGxvY2F0ZWQgbWVtb3J5IGlzIG5vdCBmcmVlZCB3aGVuIHJldHVybmluZyBlYXJseSBkdWUgdG8g YW4gZXJyb3IuCiAgICAKICAgIGMrK3Rvb2xzL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAq IHJlc29sdmVyLmNjIChtb2R1bGVfcmVzb2x2ZXI6OnJlYWRfdHVwbGVfZmlsZSk6IFVzZSB1bmlx dWVfcHRyCiAgICAgICAgICAgIHRvIGVuc3VyZSBtZW1vcnkgaXMgZnJlZWQgYmVmb3JlIHJldHVy bmluZy4KCmRpZmYgLS1naXQgYS9jKyt0b29scy9yZXNvbHZlci5jYyBiL2MrK3Rvb2xzL3Jlc29s dmVyLmNjCmluZGV4IDQyMWZkYWE1NWZlLi5hMTgzN2IzZWUxMCAxMDA2NDQKLS0tIGEvYysrdG9v bHMvcmVzb2x2ZXIuY2MKKysrIGIvYysrdG9vbHMvcmVzb2x2ZXIuY2MKQEAgLTIzLDYgKzIzLDcg QEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNp bmNsdWRlICJyZXNvbHZlci5oIgogLy8gQysrCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1 ZGUgPG1lbW9yeT4KIC8vIEMKICNpbmNsdWRlIDxjc3RyaW5nPgogLy8gT1MKQEAgLTExNCwxMCAr MTE1LDE3IEBAIG1vZHVsZV9yZXNvbHZlcjo6cmVhZF90dXBsZV9maWxlIChpbnQgZmQsIGNoYXIg Y29uc3QgKnByZWZpeCwgYm9vbCBmb3JjZSkKICAgYnVmZmVyID0gbW1hcCAobnVsbHB0ciwgc3Rh dC5zdF9zaXplLCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBmZCwgMCk7CiAgIGlmIChidWZmZXIg PT0gTUFQX0ZBSUxFRCkKICAgICByZXR1cm4gLWVycm5vOworICBzdHJ1Y3QgRGVsZXRlciB7Cisg ICAgdm9pZCBvcGVyYXRvcigpKHZvaWQqIHApIGNvbnN0IHsgbXVubWFwKHAsIHNpemUpOyB9Cisg ICAgc2l6ZV90IHNpemU7CisgIH07CisgIHN0ZDo6dW5pcXVlX3B0cjx2b2lkLCBEZWxldGVyPiBn dWFyZChidWZmZXIsIERlbGV0ZXJ7KHNpemVfdClzdGF0LnN0X3NpemV9KTsKICNlbHNlCiAgIGJ1 ZmZlciA9IHhtYWxsb2MgKHN0YXQuc3Rfc2l6ZSk7CiAgIGlmICghYnVmZmVyKQogICAgIHJldHVy biAtZXJybm87CisgIHN0cnVjdCBEZWxldGVyIHsgdm9pZCBvcGVyYXRvcigpKHZvaWQqIHApIGNv bnN0IHsgZnJlZShwKTsgfSB9OworICBzdGQ6OnVuaXF1ZV9wdHI8dm9pZCwgRGVsZXRlcj4gZ3Vh cmQoYnVmZmVyKTsKICAgaWYgKHJlYWQgKGZkLCBidWZmZXIsIHN0YXQuc3Rfc2l6ZSkgIT0gc3Rh dC5zdF9zaXplKQogICAgIHJldHVybiAtZXJybm87CiAjZW5kaWYKQEAgLTE3OSwxMiArMTg3LDYg QEAgbW9kdWxlX3Jlc29sdmVyOjpyZWFkX3R1cGxlX2ZpbGUgKGludCBmZCwgY2hhciBjb25zdCAq cHJlZml4LCBib29sIGZvcmNlKQogCX0KICAgICB9CiAKLSNpZiBNQVBQRURfUkVBRElORwotICBt dW5tYXAgKGJ1ZmZlciwgc3RhdC5zdF9zaXplKTsKLSNlbHNlCi0gIGZyZWUgKGJ1ZmZlcik7Ci0j ZW5kaWYKLQogICByZXR1cm4gMDsKIH0KIAo= --000000000000f5754c05cee3a9e0--