Message ID | 1428106561-12623-1-git-send-email-khoroshilov@ispras.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, 4 Apr 2015 03:16:01 +0300 Alexey Khoroshilov <khoroshilov@ispras.ru> wrote: > If i2c_add_adapter() fails, adap is not deallocated. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Actually, the worse thing is that it leaves the IRQ enabled...it's good you moved that lines down. Even better, of course, that the failure path has probably never been run during the life of this driver...:) Should there be some sort of proper reported-by line for the driver verification project? Acked-by: Jonathan Corbet <corbet@lwn.net> jon -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04.04.2015 16:36, Jonathan Corbet wrote: > On Sat, 4 Apr 2015 03:16:01 +0300 > Alexey Khoroshilov <khoroshilov@ispras.ru> wrote: > >> If i2c_add_adapter() fails, adap is not deallocated. >> >> Found by Linux Driver Verification project (linuxtesting.org). >> >> Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> > > Actually, the worse thing is that it leaves the IRQ enabled...it's good > you moved that lines down. Even better, of course, that the failure path > has probably never been run during the life of this driver...:) And hopefully it will not, but we will be ready:) > > Should there be some sort of proper reported-by line for the driver > verification project? Till now, we used "Found by" line, but we are open to any better way. > > Acked-by: Jonathan Corbet <corbet@lwn.net> -- Alexey -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/marvell-ccic/cafe-driver.c b/drivers/media/platform/marvell-ccic/cafe-driver.c index 562845361246..9d45505370cd 100644 --- a/drivers/media/platform/marvell-ccic/cafe-driver.c +++ b/drivers/media/platform/marvell-ccic/cafe-driver.c @@ -339,17 +339,21 @@ static int cafe_smbus_setup(struct cafe_camera *cam) adap = kzalloc(sizeof(*adap), GFP_KERNEL); if (adap == NULL) return -ENOMEM; - cam->mcam.i2c_adapter = adap; - cafe_smbus_enable_irq(cam); adap->owner = THIS_MODULE; adap->algo = &cafe_smbus_algo; strcpy(adap->name, "cafe_ccic"); adap->dev.parent = &cam->pdev->dev; i2c_set_adapdata(adap, cam); ret = i2c_add_adapter(adap); - if (ret) + if (ret) { printk(KERN_ERR "Unable to register cafe i2c adapter\n"); - return ret; + kfree(adap); + return ret; + } + + cam->mcam.i2c_adapter = adap; + cafe_smbus_enable_irq(cam); + return 0; } static void cafe_smbus_shutdown(struct cafe_camera *cam)
If i2c_add_adapter() fails, adap is not deallocated. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- drivers/media/platform/marvell-ccic/cafe-driver.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)