From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: [PATCH] xen/netback: Fix null-pointer access in netback_uevent Date: Thu, 29 Jul 2010 08:40:30 -0700 Message-ID: <4C51A0EE.1030808@goop.org> References: <4C005228.5060107@goop.org> <20100529064411.GA12168@wavehammer.waldi.eu.org> <20100529184452.GA18365@wavehammer.waldi.eu.org> <4C0383670200007800004B63@vpn.id2.novell.com> <4C038A480200007800004B80@vpn.id2.novell.com> <20100728162001.GA21304@wavehammer.waldi.eu.org> <1280404035.24292.1805.camel@zakaz.uk.xensource.com> <20100729124213.GA10008@wavehammer.waldi.eu.org> <1280411076.24292.1841.camel@zakaz.uk.xensource.com> <20100729153018.GA12495@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100729153018.GA12495@wavehammer.waldi.eu.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Bastian Blank , Ian Campbell , Jan Beulich , James Harper , xen-devel@lists.xenso List-Id: xen-devel@lists.xenproject.org On 07/29/2010 08:30 AM, Bastian Blank wrote: > On Thu, Jul 29, 2010 at 02:44:36PM +0100, Ian Campbell wrote: >> On Thu, 2010-07-29 at 13:42 +0100, Bastian Blank wrote: >>> Yes, this is included since 2.6.32-15. >> The patch from<20100529184452.GA18365@wavehammer.waldi.eu.org>? > Currently the following patch is used. The next test should be if it is > really necessary to have this much different structures, a quick look > said: most likely no. OK, I'll stick it in. Do you have a complete commit comment? Thanks, J > diff --git a/drivers/xen/netback/xenbus.c b/drivers/xen/netback/xenbus.c > index 99831c7..1930f64 100644 > --- a/drivers/xen/netback/xenbus.c > +++ b/drivers/xen/netback/xenbus.c > @@ -162,17 +162,11 @@ fail: > */ > static int netback_uevent(struct xenbus_device *xdev, struct kobj_uevent_env *env) > { > - struct backend_info *be; > - struct xen_netif *netif; > + struct backend_info *be = dev_get_drvdata(&xdev->dev); > char *val; > > DPRINTK("netback_uevent"); > > - be = dev_get_drvdata(&xdev->dev); > - if (!be) > - return 0; > - netif = be->netif; > - > val = xenbus_read(XBT_NIL, xdev->nodename, "script", NULL); > if (IS_ERR(val)) { > int err = PTR_ERR(val); > @@ -187,7 +181,7 @@ static int netback_uevent(struct xenbus_device *xdev, struct kobj_uevent_env *en > kfree(val); > } > > - if (add_uevent_var(env, "vif=%s", netif->dev->name)) > + if (be&& be->netif&& add_uevent_var(env, "vif=%s", be->netif->dev->name)) > return -ENOMEM; > > return 0; >