diff mbox

clk: vexpress: NULL dereference on error path

Message ID 20131107080844.GR21844@elgon.mountain (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter Nov. 7, 2013, 8:08 a.m. UTC
If the allocation fails then we dereference the NULL in the error path.
Just return directly.

Fixes: ed27ff1db869 ('clk: Versatile Express clock generators ("osc") driver')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Comments

Pawel Moll Nov. 8, 2013, 12:42 p.m. UTC | #1
On Thu, 2013-11-07 at 08:08 +0000, Dan Carpenter wrote:
> If the allocation fails then we dereference the NULL in the error path.
> Just return directly.
> 
> Fixes: ed27ff1db869 ('clk: Versatile Express clock generators ("osc") driver')
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c
> index 2dc8b41..a535c7b 100644
> --- a/drivers/clk/versatile/clk-vexpress-osc.c
> +++ b/drivers/clk/versatile/clk-vexpress-osc.c
> @@ -102,7 +102,7 @@ void __init vexpress_osc_of_setup(struct device_node *node)
>  
>  	osc = kzalloc(sizeof(*osc), GFP_KERNEL);
>  	if (!osc)
> -		goto error;
> +		return;
>  
>  	osc->func = vexpress_config_func_get_by_node(node);
>  	if (!osc->func) {

Well spotted, thanks!

Will get it queued with other vexpress clk changes.

Pawe?
Pawel Moll Nov. 8, 2013, 12:44 p.m. UTC | #2
On Fri, 2013-11-08 at 12:42 +0000, Pawel Moll wrote:
> On Thu, 2013-11-07 at 08:08 +0000, Dan Carpenter wrote:
> > If the allocation fails then we dereference the NULL in the error path.
> > Just return directly.
> > 
> > Fixes: ed27ff1db869 ('clk: Versatile Express clock generators ("osc") driver')
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > 
> > diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c
> > index 2dc8b41..a535c7b 100644
> > --- a/drivers/clk/versatile/clk-vexpress-osc.c
> > +++ b/drivers/clk/versatile/clk-vexpress-osc.c
> > @@ -102,7 +102,7 @@ void __init vexpress_osc_of_setup(struct device_node *node)
> >  
> >  	osc = kzalloc(sizeof(*osc), GFP_KERNEL);
> >  	if (!osc)
> > -		goto error;
> > +		return;
> >  
> >  	osc->func = vexpress_config_func_get_by_node(node);
> >  	if (!osc->func) {
> 
> Well spotted, thanks!
> 
> Will get it queued with other vexpress clk changes.

Having said that - Mike, it's a bug fix. If you can still get it into
the current merge window, please do:

Acked-by: Pawel Moll <pawel.moll@arm.com>

Pawe?
Dan Carpenter April 11, 2014, 11:51 a.m. UTC | #3
On Fri, Nov 08, 2013 at 12:44:01PM +0000, Pawel Moll wrote:
> On Fri, 2013-11-08 at 12:42 +0000, Pawel Moll wrote:
> > On Thu, 2013-11-07 at 08:08 +0000, Dan Carpenter wrote:
> > > If the allocation fails then we dereference the NULL in the error path.
> > > Just return directly.
> > > 
> > > Fixes: ed27ff1db869 ('clk: Versatile Express clock generators ("osc") driver')
> > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > > 
> > > diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c
> > > index 2dc8b41..a535c7b 100644
> > > --- a/drivers/clk/versatile/clk-vexpress-osc.c
> > > +++ b/drivers/clk/versatile/clk-vexpress-osc.c
> > > @@ -102,7 +102,7 @@ void __init vexpress_osc_of_setup(struct device_node *node)
> > >  
> > >  	osc = kzalloc(sizeof(*osc), GFP_KERNEL);
> > >  	if (!osc)
> > > -		goto error;
> > > +		return;
> > >  
> > >  	osc->func = vexpress_config_func_get_by_node(node);
> > >  	if (!osc->func) {
> > 
> > Well spotted, thanks!
> > 
> > Will get it queued with other vexpress clk changes.
> 
> Having said that - Mike, it's a bug fix. If you can still get it into
> the current merge window, please do:
> 
> Acked-by: Pawel Moll <pawel.moll@arm.com>
> 

Heh.  Let's try again to get this merged.  :P

regards,
dan carpenter
Pawel Moll April 11, 2014, 11:57 a.m. UTC | #4
On Fri, 2014-04-11 at 12:51 +0100, Dan Carpenter wrote:
> On Fri, Nov 08, 2013 at 12:44:01PM +0000, Pawel Moll wrote:
> > On Fri, 2013-11-08 at 12:42 +0000, Pawel Moll wrote:
> > > On Thu, 2013-11-07 at 08:08 +0000, Dan Carpenter wrote:
> > > > If the allocation fails then we dereference the NULL in the error path.
> > > > Just return directly.
> > > > 
> > > > Fixes: ed27ff1db869 ('clk: Versatile Express clock generators ("osc") driver')
> > > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > > > 
> > > > diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c
> > > > index 2dc8b41..a535c7b 100644
> > > > --- a/drivers/clk/versatile/clk-vexpress-osc.c
> > > > +++ b/drivers/clk/versatile/clk-vexpress-osc.c
> > > > @@ -102,7 +102,7 @@ void __init vexpress_osc_of_setup(struct device_node *node)
> > > >  
> > > >  	osc = kzalloc(sizeof(*osc), GFP_KERNEL);
> > > >  	if (!osc)
> > > > -		goto error;
> > > > +		return;
> > > >  
> > > >  	osc->func = vexpress_config_func_get_by_node(node);
> > > >  	if (!osc->func) {
> > > 
> > > Well spotted, thanks!
> > > 
> > > Will get it queued with other vexpress clk changes.
> > 
> > Having said that - Mike, it's a bug fix. If you can still get it into
> > the current merge window, please do:
> > 
> > Acked-by: Pawel Moll <pawel.moll@arm.com>
> > 
> 
> Heh.  Let's try again to get this merged.  :P

Right, my fault, haven't followed this up with Mike, sorry.

Pawel
Pawel Moll April 23, 2014, 3:53 p.m. UTC | #5
On Fri, 2014-04-11 at 12:57 +0100, Pawel Moll wrote:
> > > Having said that - Mike, it's a bug fix. If you can still get it into
> > > the current merge window, please do:
> > > 
> > > Acked-by: Pawel Moll <pawel.moll@arm.com>
> > > 
> > 
> > Heh.  Let's try again to get this merged.  :P
> 
> Right, my fault, haven't followed this up with Mike, sorry.

Mike, will you take it in as a fix for 3.15, or do you want me to queue
it with other vexpress fixes and go through arm-soc?

Cheers!

Pawel
diff mbox

Patch

diff --git a/drivers/clk/versatile/clk-vexpress-osc.c b/drivers/clk/versatile/clk-vexpress-osc.c
index 2dc8b41..a535c7b 100644
--- a/drivers/clk/versatile/clk-vexpress-osc.c
+++ b/drivers/clk/versatile/clk-vexpress-osc.c
@@ -102,7 +102,7 @@  void __init vexpress_osc_of_setup(struct device_node *node)
 
 	osc = kzalloc(sizeof(*osc), GFP_KERNEL);
 	if (!osc)
-		goto error;
+		return;
 
 	osc->func = vexpress_config_func_get_by_node(node);
 	if (!osc->func) {