[alsa-devel] [alsa/virmidi] BUG: unable to handle kernel NULL pointer dereference at 000002a0

Takashi Iwai tiwai at suse.de
Sun Nov 30 20:19:02 CET 2014


At Sun, 30 Nov 2014 10:50:19 -0800,
Fengguang Wu wrote:
At Sun, 30 Nov 2014 10:50:19 -0800,
Fengguang Wu wrote:
> 
> Hi Kyle,
> 
> 0day kernel testing robot got the below dmesg and the first bad commit is
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
> 
> commit 316638a5030a04bb3259dcbca0632281001a4b24
> Author:     Kyle Chamberlin <kylechamberlin at project20million.org>
> AuthorDate: Fri Nov 28 13:59:56 2014 -0500
> Commit:     Takashi Iwai <tiwai at suse.de>
> CommitDate: Sat Nov 29 21:34:47 2014 +0100
> 
>     ALSA: virmidi: fixed code style issues
>     
>     Fixed some minor code style issues and also removed some
>     assignments inside of if conditionals.
>     
>     Signed-off-by: Kyle Chamberlin <kylechamberlin at project20million.org>
>     Signed-off-by: Takashi Iwai <tiwai at suse.de>
> 
> In particular, this chunk introduced the behavior change:
> 
> -       if ((err = snd_card_register(card)) == 0) {
> +       err = snd_card_register(card);
> +       if (err) {

Doh, it's an obvious error.  Sorry for overlooking it at review.

Fixed now in sound git tree as below.


thanks,

Takashi

-- 8< --
From: Takashi Iwai <tiwai at suse.de>
Subject: [PATCH] ALSA: virmidi: Fix wrong error check

While rewriting the code in the previous commit [316638a5030a: ALSA:
virmidi: fixed code style issues], the error check was wrongly
converted.  This resulted an Oops.

Fixes: 316638a5030a ('ALSA: virmidi: fixed code style issues')
Reported-by: Fengguang Wu <fengguang.wu at intel.com>
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
 sound/drivers/virmidi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c
index 0af88d926793..d28d8706443c 100644
--- a/sound/drivers/virmidi.c
+++ b/sound/drivers/virmidi.c
@@ -121,7 +121,7 @@ static int snd_virmidi_probe(struct platform_device *devptr)
 	sprintf(card->longname, "Virtual MIDI Card %i", dev + 1);
 
 	err = snd_card_register(card);
-	if (err) {
+	if (!err) {
 		platform_set_drvdata(devptr, card);
 		return 0;
 	}
-- 
2.1.3



More information about the Alsa-devel mailing list