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 [216.205.24.124]) by sourceware.org (Postfix) with ESMTPS id CE75B385802B for ; Thu, 21 Oct 2021 21:34:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CE75B385802B Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-425-Y38DjXmyNRumzVL6Sz2WHw-1; Thu, 21 Oct 2021 17:34:48 -0400 X-MC-Unique: Y38DjXmyNRumzVL6Sz2WHw-1 Received: by mail-ua1-f71.google.com with SMTP id o12-20020ab0150c000000b002cb5393147dso929573uae.9 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=SB6EyW6KuOCeLxJjfsmHoLwVnM262s0pnap4kYIqv+yVWjCX2oyxevkWXKv+RAU4I/ 6T7JjkS1iVnfPtxKKRPtlk/4GIg4Rqg8AI4sUGqq6XpANlueBYuFvrVQm9TlIjgpZ11S RfqpdITiqnPcwNwWsgE1Xoc6P2FRpeBDqt3AuWPE42vuf/q9VcQdbuPEDEynIrlCz+Gm xRUNBwvTq7qTkccT6aG3BBgviyjLtnq5JveIGoGNej2F8+qHtNzZ5L7/DY3m6ZysDdRL U+ng8jwSQMeGqOHQd06CwT1D/f9Z6QORzDbqrxSkPC43EK9K1ho+VAljlZYgB3JqqjuC 2DpA== X-Gm-Message-State: AOAM530z05Q3oRV6CDZUpaR4cziCUPtXFg5G4/v5lP2+5FPxjMZeNBLF I6KW5aFAtAcfj239bilyX+EmgG2Iz8xVJFRw3fLVypBmMaVIxQyYjTHhcoPAjDjiifkheGff5CV 2HcqHNFrs/tozbz4D9Jd6ns5WTB8MQEI= X-Received: by 2002:ab0:1447:: with SMTP id c7mr9415796uae.2.1634852088077; 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=-14.2 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=unavailable 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: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ 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--