diff options
author | Mark Farrugia <mark.farrugia@fiberdyne.com.au> | 2018-08-31 17:40:44 +1000 |
---|---|---|
committer | Mark Farrugia <mark.farrugia@fiberdyne.com.au> | 2018-10-26 17:27:30 +1100 |
commit | bde87475ff7d229619eb090af58c7e496bd3fa60 (patch) | |
tree | d20dce8773c4c0453636f00f98462b5e99e88601 | |
parent | 993a6fb52ee4a39775b7e14394650213f18913f2 (diff) |
Add additional NULL checks
Check for NULL pointers before free'ing memory on cleanup of AVIRT
Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
-rwxr-xr-x | alsa.c | 20 | ||||
-rw-r--r-- | core.c | 5 |
2 files changed, 12 insertions, 13 deletions
@@ -203,17 +203,17 @@ int avirt_alsa_register(struct platform_device *devptr) */ int avirt_alsa_deregister(void) { + CHK_NULL(_driver->card); snd_card_free(_driver->card); - - if (_driver->playback.config) - kfree(_driver->playback.config); - if (_driver->playback.streams) - kfree(_driver->playback.streams); - if (_driver->capture.config) - kfree(_driver->capture.config); - if (_driver->capture.streams) - kfree(_driver->capture.streams); - + CHK_NULL(_driver->playback.config); + kfree(_driver->playback.config); + CHK_NULL(_driver->playback.streams); + kfree(_driver->playback.streams); + CHK_NULL(_driver->capture.config); + kfree(_driver->capture.config); + CHK_NULL(_driver->capture.streams); + kfree(_driver->capture.streams); + CHK_NULL(_driver); kfree(_driver); return 0; @@ -151,9 +151,8 @@ static int avirt_probe(struct platform_device *devptr) */ static int avirt_remove(struct platform_device *devptr) { - avirt_alsa_deregister(); - - return 0; + DPRINTK(); + return avirt_alsa_deregister(); } static struct platform_driver avirt_driver = { |