Skip to content

Commit

Permalink
ALSA: mts64: fix NULL pointer dereference
Browse files Browse the repository at this point in the history
While registering pardev, the irq_func was also registered. As a
result when we tried to probe for the card, an interrupt was generated
and in the ISR we tried to dereference private_data. But private_data
is still NULL as we have not yet done snd_mts64_create(). Lets probe
for the card after mts64 is created.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Fixes: 94a5735 ("ALSA: mts64: use new parport device model")
Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Sudip Mukherjee authored and Takashi Iwai committed Feb 29, 2016
1 parent 1387e3e commit 0bbf7e0
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions sound/drivers/mts64.c
Original file line number Diff line number Diff line change
Expand Up @@ -964,18 +964,19 @@ static int snd_mts64_probe(struct platform_device *pdev)
err = -EIO;
goto free_pardev;
}
err = mts64_probe(p);
if (err) {
err = -EIO;
goto release_pardev;
}

if ((err = snd_mts64_create(card, pardev, &mts)) < 0) {
snd_printd("Cannot create main component\n");
goto release_pardev;
}
card->private_data = mts;
card->private_free = snd_mts64_card_private_free;

err = mts64_probe(p);
if (err) {
err = -EIO;
goto __err;
}

if ((err = snd_mts64_rawmidi_create(card)) < 0) {
snd_printd("Creating Rawmidi component failed\n");
Expand Down

0 comments on commit 0bbf7e0

Please sign in to comment.