Просмотр исходного кода

[media] em28xx-audio: Fix error path

De-allocate memory and free sound if an error happens.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Mauro Carvalho Chehab 11 лет назад
Родитель
Сommit
439c491c4c
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      drivers/media/usb/em28xx/em28xx-audio.c

+ 3 - 0
drivers/media/usb/em28xx/em28xx-audio.c

@@ -692,6 +692,7 @@ static int em28xx_audio_init(struct em28xx *dev)
 	if (intf->num_altsetting <= alt) {
 		em28xx_errdev("alt %d doesn't exist on interface %d\n",
 			      dev->audio_ifnum, alt);
+		snd_card_free(card);
 		return -ENODEV;
 	}
 
@@ -707,6 +708,7 @@ static int em28xx_audio_init(struct em28xx *dev)
 
 	if (!ep) {
 		em28xx_errdev("Couldn't find an audio endpoint");
+		snd_card_free(card);
 		return -ENODEV;
 	}
 
@@ -759,6 +761,7 @@ static int em28xx_audio_init(struct em28xx *dev)
 
 	err = snd_card_register(card);
 	if (err < 0) {
+		em28xx_audio_free_urb(dev);
 		snd_card_free(card);
 		return err;
 	}