From patchwork Fri Dec 27 12:45:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Terekhov, Mikhail via Gdb-patches" X-Patchwork-Id: 37096 Received: (qmail 90520 invoked by alias); 27 Dec 2019 12:46:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 90512 invoked by uid 89); 27 Dec 2019 12:46:09 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.6 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=relocate, H*m:yahoo, HContent-Transfer-Encoding:8bit X-HELO: sonic301-21.consmr.mail.ir2.yahoo.com Received: from sonic301-21.consmr.mail.ir2.yahoo.com (HELO sonic301-21.consmr.mail.ir2.yahoo.com) (77.238.176.98) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 27 Dec 2019 12:46:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1577450765; bh=ny/hP5HvOYKoQ+Axpj19AwFUk9NHJqsaEnmN81y7P3Q=; h=From:To:Subject:Date:References:From:Subject; b=UWsENvB9QCpieu6HL9+dAgOoDVN5h+qCJ0K7dz0Z/qsmYJO0j8MmGW/yt2rq1czexN4evh+ZxQGuw2jLNHRxqZEhPIXMvCdLj/JMrs4lq7v3WfMpkXevUn96Ff83OtQcr+xYpTUEHijoaKOUzCHfM0OBAS/kjj+ncjTW9RmQALBdvD8lSTzKlJsW4cPHGQEVnfzyxZEGPQHPOUd7pV8UyqeBa2nYUZqwjGR1vCqZoUoFsdhIMbUnP8NNg75B3RBJMOxEh/9oHCxIaJI/31Uc5GLnKyKLr6nAYw+Bai/s1bzKSR0HRdQ9BH5kjvL6RlIYAZDThuso+s4kFzv9qww6kg== Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.ir2.yahoo.com with HTTP; Fri, 27 Dec 2019 12:46:05 +0000 Received: by smtp407.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 54feeb9ca6105471af8e6f62c57a5253; Fri, 27 Dec 2019 12:46:00 +0000 (UTC) X-Patchwork-Original-From: "Hannes Domani via gdb-patches" From: "Terekhov, Mikhail via Gdb-patches" Reply-To: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCH v2] solib_target_free_so memory leak Date: Fri, 27 Dec 2019 13:45:32 +0100 Message-Id: <20191227124532.5959-1-ssbssa@yahoo.de> MIME-Version: 1.0 References: <20191227124532.5959-1-ssbssa.ref@yahoo.de> Content-Length: 1607 X-IsSubscribed: yes gdb/ChangeLog: 2019-12-27 Hannes Domani * solib-target.c (struct lm_info_target): Change offsets to be a unique_xmalloc_ptr. (solib_target_relocate_section_addresses): Update. --- gdb/solib-target.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gdb/solib-target.c b/gdb/solib-target.c index 2b473d6066..549e38cf46 100644 --- a/gdb/solib-target.c +++ b/gdb/solib-target.c @@ -46,7 +46,7 @@ struct lm_info_target : public lm_info_base /* The cached offsets for each section of this shared library, determined from SEGMENT_BASES, or SECTION_BASES. */ - section_offsets *offsets = NULL; + gdb::unique_xmalloc_ptr offsets; }; typedef std::vector> lm_info_vector; @@ -309,9 +309,8 @@ solib_target_relocate_section_addresses (struct so_list *so, { int num_sections = gdb_bfd_count_sections (so->abfd); - li->offsets - = ((struct section_offsets *) - xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections))); + li->offsets.reset((struct section_offsets *) + xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections))); if (!li->section_bases.empty ()) { @@ -377,7 +376,8 @@ Could not relocate shared library \"%s\": no segments"), so->so_name); ULONGEST orig_delta; int i; - if (!symfile_map_offsets_to_segments (so->abfd, data, li->offsets, + if (!symfile_map_offsets_to_segments (so->abfd, data, + li->offsets.get(), li->segment_bases.size (), li->segment_bases.data ())) warning (_("\