ASoC: Fix null dereference in ak4535_remove()
authorDan Carpenter <error27@gmail.com>
Mon, 6 Apr 2009 01:50:46 +0000 (03:50 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 6 Apr 2009 09:53:37 +0000 (10:53 +0100)
ak4535_remove() from sound/soc/codecs/ak4535.c calls
i2c_unregister_device() with a possibly null pointer.

This bug was found by smatch (http://repo.or.cz/w/smatch.git/).

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/ak4535.c

index 1f63d38..dd33802 100644 (file)
@@ -659,7 +659,8 @@ static int ak4535_remove(struct platform_device *pdev)
        snd_soc_free_pcms(socdev);
        snd_soc_dapm_free(socdev);
 #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-       i2c_unregister_device(codec->control_data);
+       if (codec->control_data)
+               i2c_unregister_device(codec->control_data);
        i2c_del_driver(&ak4535_i2c_driver);
 #endif
        kfree(codec->private_data);