ALSA: usx2y: Fix potential NULL pointer dereference
authorAditya Pakki <pakki001@umn.edu>
Mon, 4 Mar 2019 23:00:02 +0000 (17:00 -0600)
committerTakashi Iwai <tiwai@suse.de>
Wed, 13 Mar 2019 10:27:06 +0000 (11:27 +0100)
usb_alloc_urb() can fail due to kmalloc failure and push the error
upstream. Further this can cause a NULL pointer dereference in
init_pipe_urbs(). This patch avoids such a scenario.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/usx2y/usb_stream.c

index b0f8979ff2d2f0763e40f300ffc8d98ebb560dbf..221adf68bd0cb7a67f077a32f07bf7ee770a6071 100644 (file)
@@ -104,7 +104,12 @@ static int init_urbs(struct usb_stream_kernel *sk, unsigned use_packsize,
 
        for (u = 0; u < USB_STREAM_NURBS; ++u) {
                sk->inurb[u] = usb_alloc_urb(sk->n_o_ps, GFP_KERNEL);
+               if (!sk->inurb[u])
+                       return -ENOMEM;
+
                sk->outurb[u] = usb_alloc_urb(sk->n_o_ps, GFP_KERNEL);
+               if (!sk->outurb[u])
+                       return -ENOMEM;
        }
 
        if (init_pipe_urbs(sk, use_packsize, sk->inurb, indata, dev, in_pipe) ||