From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.176]) by ozlabs.org (Postfix) with ESMTP id A1643DDDDB for ; Wed, 28 Nov 2007 21:59:17 +1100 (EST) Received: by wa-out-1112.google.com with SMTP id m28so1952012wag for ; Wed, 28 Nov 2007 02:59:16 -0800 (PST) Message-ID: Date: Wed, 28 Nov 2007 13:59:16 +0300 From: "Cyrill Gorcunov" To: michael@ellerman.id.au Subject: Re: [PATCH] PPC: CELLEB - fix potential NULL pointer dereference In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 References: <1196243333.2109.2.camel@concordia> Cc: Olof Johansson , PPCML , Paul Mackerras , LKML List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 11/28/07, Cyrill Gorcunov wrote: > On 11/28/07, Michael Ellerman wrote: > > On Mon, 2007-11-26 at 10:46 +0300, Cyrill Gorcunov wrote: > > > This patch adds checking for NULL value returned to prevent possible > > > NULL pointer dereference. > > > Also two unneeded 'return' are removed. > > > > > > Signed-off-by: Cyrill Gorcunov > > > --- > > > Any comments are welcome. > > > > I guess it's good to be paranoid, but this is a little verbose: > > > > wi0 = of_get_property(node, "device-id", NULL); > > + if (unlikely((!wi0))) { > > + printk(KERN_ERR "PCI: device-id not found.\n"); > > + goto error; > > + } > > wi1 = of_get_property(node, "vendor-id", NULL); > > + if (unlikely((!wi1))) { > > + printk(KERN_ERR "PCI: vendor-id not found.\n"); > > + goto error; > > + } > > wi2 = of_get_property(node, "class-code", NULL); > > + if (unlikely((!wi2))) { > > + printk(KERN_ERR "PCI: class-code not found.\n"); > > + goto error; > > + } > > wi3 = of_get_property(node, "revision-id", NULL); > > + if (unlikely((!wi3))) { > > + printk(KERN_ERR "PCI: revision-id not found.\n"); > > + goto error; > > + } > > > > Perhaps instead: > > > > wi0 = of_get_property(node, "device-id", NULL); > > wi1 = of_get_property(node, "vendor-id", NULL); > > wi2 = of_get_property(node, "class-code", NULL); > > wi3 = of_get_property(node, "revision-id", NULL); > > > > if (!wi0 || !wi1 || !wi2 || !wi3) { > > printk(KERN_ERR "PCI: Missing device tree properties.\n"); > > goto error; > > } > > Hi Michael, yes that is much better (actually I was doubt about what form of > which the checking style to use - your form is much compact but mine does > show where *exactly* the problem appeared). So 'case that is the fake driver > your form is preferred ;) Ishizaki, could you use Michael's part then? > > > > > > > cheers > > > > -- > > Michael Ellerman > > OzLabs, IBM Australia Development Lab > > > > wwweb: http://michael.ellerman.id.au > > phone: +61 2 6212 1183 (tie line 70 21183) > > > > We do not inherit the earth from our ancestors, > > we borrow it from our children. - S.M.A.R.T Person > > > > > > Cyrill > Ishizaki I can update the patch if you needed. Should I? Cyrill