[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20130918.121539.1213515779326200577.davem@davemloft.net>
Date: Wed, 18 Sep 2013 12:15:39 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: nikolay@...hat.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH -net] netpoll: fix NULL pointer dereference in
netpoll_cleanup
From: Nikolay Aleksandrov <nikolay@...hat.com>
Date: Tue, 17 Sep 2013 16:12:35 +0200
> @@ -1284,15 +1284,15 @@ EXPORT_SYMBOL_GPL(__netpoll_free_async);
>
> void netpoll_cleanup(struct netpoll *np)
> {
> - if (!np->dev)
> - return;
> -
> rtnl_lock();
> + if (!np->dev) {
> + rtnl_unlock();
> + return;
> + }
> __netpoll_cleanup(np);
> - rtnl_unlock();
> -
> dev_put(np->dev);
> np->dev = NULL;
> + rtnl_unlock();
> }
> EXPORT_SYMBOL(netpoll_cleanup);
I know it seems arbitrary, but please do this like:
lock();
if (condition) {
...
}
unlock();
rather than having multiple return/unlock code paths.
This style I am suggesting is easier to audit for locking problems.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists