From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21597 invoked by alias); 9 Mar 2009 22:17:50 -0000 Received: (qmail 21588 invoked by uid 22791); 9 Mar 2009 22:17:50 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BARRACUDA_BRBL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 09 Mar 2009 22:17:41 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Lgnms-0005Fv-2s for gdb-patches@sources.redhat.com; Mon, 09 Mar 2009 22:17:30 +0000 Received: from h86-62-88-129.ln.rinet.ru ([86.62.88.129]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 09 Mar 2009 22:17:30 +0000 Received: from vladimir by h86-62-88-129.ln.rinet.ru with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 09 Mar 2009 22:17:30 +0000 To: gdb-patches@sources.redhat.com From: Vladimir Prus Subject: Re: [patch] Fix a value leak by VAROBJ Date: Mon, 09 Mar 2009 22:33:00 -0000 Message-ID: References: <20090309182211.GA21666@host0.dyn.jankratochvil.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.10.9 X-IsSubscribed: yes 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 X-SW-Source: 2009-03/txt/msg00133.txt.bz2 Jan Kratochvil wrote: > Hi, > > a memory leak. install_new_value() already release_value()s `var->value'. > > No regressions on x86_64-unknown-linux-gnu (there is now a recent regression > on HEAD for gdb.base/sigbpt.exp but it is unrelated to this patch). > > > Thanks, > Jan > > > gdb/ > 2009-03-09 Jan Kratochvil > > * varobj.c (free_variable): Call value_free. > > --- gdb/varobj.c 5 Feb 2009 17:28:21 -0000 1.123 > +++ gdb/varobj.c 9 Mar 2009 17:35:49 -0000 > @@ -1512,6 +1512,8 @@ new_root_variable (void) > static void > free_variable (struct varobj *var) > { > + value_free (var->value); > + > /* Free the expression if this is a root variable. */ > if (is_root_p (var)) > { This is OK. Thanks, Volodya