From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123940 invoked by alias); 17 Aug 2017 11:00:58 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 123569 invoked by uid 89); 17 Aug 2017 11:00:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:clients X-HELO: mail-io0-f194.google.com Received: from mail-io0-f194.google.com (HELO mail-io0-f194.google.com) (209.85.223.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 17 Aug 2017 11:00:24 +0000 Received: by mail-io0-f194.google.com with SMTP id o9so3801124iod.5 for ; Thu, 17 Aug 2017 04:00:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=AzoQxCgxw1AkdISZ9RvLKIr3CaSy1xHbSfFdeHsZBTQ=; b=SP4HTU8Rf2/GcT2WF60+RhMnxONskGxFlR7U/jD3Y9kfvE4EGqabt0+p5TOtIJC2Ep SBjMOhy2pn+y7syXoz9uKQ7x4xEDN7hogt+LO6VXM873vLGmcZuZwXSnxougN4Z2ZQWl pZ/hC+DwEkH4bogjKlFXOadCfBqjXx4mCnojRsU+tCz92Dr8iy3iL6SYOOpgC30KrQdx kqO5mze7i2Mul+9127x8LRzAuVeHC1wc+HfR8lll/pvHz9P8q+xemgAX31ZZQJMjROQT 0x7RTnUBWLQfpO2R8z9WA5ZTMd7UIhqwzNkiemy5Ol5WsIEgzFe7Zp8i8FjLolrosYm9 5/0g== X-Gm-Message-State: AHYfb5i2j5j7z0uaKL6g7zDH/CGBvFqKkpT5xXlvizTuzBLm6Y2e4/zf SdlSMGXuF+CIH/V1 X-Received: by 10.107.59.70 with SMTP id i67mr4326245ioa.24.1502967610127; Thu, 17 Aug 2017 04:00:10 -0700 (PDT) Received: from E107787-LIN (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id l5sm1342385ioe.65.2017.08.17.04.00.08 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Thu, 17 Aug 2017 04:00:09 -0700 (PDT) From: Yao Qi To: Alex Lindsay Cc: "H.J. Lu" , GDB Subject: Re: Synthetic symbol leak in in elf_x86_64_get_synthetic_symtab and elf_read_minimal_symbols References: <20170811092709.GH8039@1170ee0b50d5> <20170811154542.GK8039@1170ee0b50d5> Date: Thu, 17 Aug 2017 11:00:00 -0000 In-Reply-To: (Alex Lindsay's message of "Fri, 11 Aug 2017 16:20:32 -0500") Message-ID: <86d17umpcg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg00345.txt.bz2 Alex Lindsay writes: > I can verify that the objdump example is fixed in HEAD, but I still > get this leak with `valgrind --leak-check=3Dfull > --show-leak-kinds=3Ddefinite gdb ./hello`: Yes, because your patch is not pushed in yet :) I tweaked your patch a little bit, and pushed it in. Again, thanks for your contribution. Do you still see other memory leak issues after this fix? --=20 Yao (=E9=BD=90=E5=B0=A7) =46rom ba7139188c75a9c620cadea59158c5ffcab28acf Mon Sep 17 00:00:00 2001 From: Alex Lindsay Date: Thu, 17 Aug 2017 11:53:53 +0100 Subject: [PATCH] Synthetic symbol leak in elf_read_minimal_symbols Detected this leak with valgrind memcheck: =3D=3D30840=3D=3D 194 bytes in 1 blocks are definitely lost in loss record = 9,138 of 10,922 =3D=3D30840=3D=3D at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_m= emcheck-amd64-linux.so) =3D=3D30840=3D=3D by 0x80DF82: bfd_malloc (libbfd.c:193) =3D=3D30840=3D=3D by 0x80E12D: bfd_zmalloc (libbfd.c:278) =3D=3D30840=3D=3D by 0x819E80: elf_x86_64_get_synthetic_symtab (elf64-x8= 6-64.c:6835) =3D=3D30840=3D=3D by 0x4F7B01: elf_read_minimal_symbols(objfile*, int, e= lfinfo const*) (elfread.c:1124) =3D=3D30840=3D=3D by 0x4F7CE7: elf_symfile_read(objfile*, enum_flags) (elfread.c:1182) =3D=3D30840=3D=3D by 0x7557FC: read_symbols(objfile*, enum_flags) (symfile.c:861) =3D=3D30840=3D=3D by 0x755EE1: syms_from_objfile_1(objfile*, section_add= r_info*, enum_flags) (symfile.c:1062) We perform a dynamic allocation in elf64-x86-64.c:elf_x86_64_get_synthetic_symtab s =3D *ret =3D (asymbol *) bfd_zmalloc (size); that appear to never get freed. gdb: 2017-08-17 Alex Lindsay * elfread.c (elf_read_minimal_symbols): xfree synthsyms. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 10d63b0..d2c194e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-08-17 Alex Lindsay (tiny change) + + * elfread.c (elf_read_minimal_symbols): xfree synthsyms. + 2017-08-17 Ruslan Kabatsayev =20 * NEWS: Mention new shortcuts for nexti and stepi in TUI diff --git a/gdb/elfread.c b/gdb/elfread.c index ece704c..a654661 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -1132,6 +1132,9 @@ elf_read_minimal_symbols (struct objfile *objfile, in= t symfile_flags, synth_symbol_table[i] =3D synthsyms + i; elf_symtab_read (reader, objfile, ST_SYNTHETIC, synthcount, synth_symbol_table.get (), true); + + xfree (synthsyms); + synthsyms =3D NULL; } =20 /* Install any minimal symbols that have been collected as the current