[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAAa=b7fc99q0JTcn2FaBaN4as3U_SMutG7J+AuqSa3xBHaPQ4Q@mail.gmail.com>
Date: Wed, 21 Aug 2019 00:10:33 -0400
From: Wenwen Wang <wenwen@...uga.edu>
To: David Miller <davem@...emloft.net>
Cc: Richard Fontana <rfontana@...hat.com>,
Allison Randal <allison@...utok.net>,
Alexios Zavras <alexios.zavras@...el.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
"open list:NETWORKING [GENERAL]" <netdev@...r.kernel.org>,
open list <linux-kernel@...r.kernel.org>,
Wenwen Wang <wenwen@...uga.edu>
Subject: Re: [PATCH] net: pch_gbe: Fix memory leaks
On Thu, Aug 15, 2019 at 4:51 PM David Miller <davem@...emloft.net> wrote:
>
> From: Wenwen Wang <wenwen@...uga.edu>
> Date: Thu, 15 Aug 2019 16:46:05 -0400
>
> > On Thu, Aug 15, 2019 at 4:42 PM David Miller <davem@...emloft.net> wrote:
> >>
> >> From: Wenwen Wang <wenwen@...uga.edu>
> >> Date: Thu, 15 Aug 2019 16:03:39 -0400
> >>
> >> > On Thu, Aug 15, 2019 at 3:34 PM David Miller <davem@...emloft.net> wrote:
> >> >>
> >> >> From: Wenwen Wang <wenwen@...uga.edu>
> >> >> Date: Tue, 13 Aug 2019 20:33:45 -0500
> >> >>
> >> >> > In pch_gbe_set_ringparam(), if netif_running() returns false, 'tx_old' and
> >> >> > 'rx_old' are not deallocated, leading to memory leaks. To fix this issue,
> >> >> > move the free statements after the if branch.
> >> >> >
> >> >> > Signed-off-by: Wenwen Wang <wenwen@...uga.edu>
> >> >>
> >> >> Why would they be "deallocated"? They are still assigned to
> >> >> adapter->tx_ring and adapter->rx_ring.
> >> >
> >> > 'adapter->tx_ring' and 'adapter->rx_ring' has been covered by newly
> >> > allocated 'txdr' and 'rxdr' respectively before this if statement.
> >>
> >> That only happens inside of the if() statement, that's why rx_old and
> >> tx_old are only freed in that code path.
> >
> > That happens not only inside of the if statement, but also before the
> > if statement, just after 'txdr' and 'rxdr' are allocated.
>
> Then the assignments inside of the if() statement are redundant.
>
> Something doesn't add up here, please make the code consistent.
Thanks for your suggestion! I will remove the assignments inside of
the if() statement.
Wenwen
Powered by blists - more mailing lists