Return-Path: Date: Fri, 1 Aug 2014 13:35:17 +0300 From: Johan Hedberg To: Andrei Emeltchenko Cc: linux-bluetooth@vger.kernel.org Subject: Re: [PATCHv4 09/12] tools: Fix memory leak Message-ID: <20140801103517.GA24358@t440s.P-661HNU-F1> References: <1406643661-29323-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> <1406643661-29323-9-git-send-email-Andrei.Emeltchenko.news@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1406643661-29323-9-git-send-email-Andrei.Emeltchenko.news@gmail.com> Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi Andrei, On Tue, Jul 29, 2014, Andrei Emeltchenko wrote: > lmpver and hciver are allocated through malloc and need to be freed. > --- > tools/parser/hci.c | 19 ++++++++++++++++--- > 1 file changed, 16 insertions(+), 3 deletions(-) I've applied all 8 patches before this one. > diff --git a/tools/parser/hci.c b/tools/parser/hci.c > index 351f843..1a639af 100644 > --- a/tools/parser/hci.c > +++ b/tools/parser/hci.c > @@ -2445,17 +2445,25 @@ static inline void read_local_version_dump(int level, struct frame *frm) > p_indent(level, frm); > printf("Error: %s\n", status2str(rp->status)); > } else { > + char *lmpver = lmp_vertostr(rp->lmp_ver); > + char *hciver = hci_vertostr(rp->hci_ver); > + > p_indent(level, frm); > printf("HCI Version: %s (0x%x) HCI Revision: 0x%x\n", > - hci_vertostr(rp->hci_ver), > + hciver ? hciver : "n/a", > rp->hci_ver, btohs(rp->hci_rev)); > p_indent(level, frm); > printf("LMP Version: %s (0x%x) LMP Subversion: 0x%x\n", > - lmp_vertostr(rp->lmp_ver), > + lmpver ? lmpver : "n/a", > rp->lmp_ver, btohs(rp->lmp_subver)); > p_indent(level, frm); > printf("Manufacturer: %s (%d)\n", > bt_compidtostr(manufacturer), manufacturer); > + > + if (lmpver) > + bt_free(lmpver); > + if (hciver) > + bt_free(hciver); These trace back to using malloc (in hci_uint2str) so I suppose free is more appropriate than bt_free (which should be used for bt_malloc). Johan