From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Wed, 13 Sep 2017 21:23:29 +0200 * Move the definition for the local variables "b", "d" and "length" into an if branch so that the corresponding setting will only be performed if a memory allocation succeeded in this function. * Adjust their data types. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/media/usb/ttusb-dec/ttusb_dec.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c index 7759de653ee9..e9fe4c6142a5 100644 --- a/drivers/media/usb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c @@ -812,19 +812,18 @@ static void ttusb_dec_process_urb(struct urb *urb) int i; for (i = 0; i < FRAMES_PER_ISO_BUF; i++) { - struct usb_iso_packet_descriptor *d; - u8 *b; - int length; struct urb_frame *frame; - d = &urb->iso_frame_desc[i]; - b = urb->transfer_buffer + d->offset; - length = d->actual_length; - frame = kmalloc(sizeof(*frame), GFP_ATOMIC); if (frame) { unsigned long flags; + struct usb_iso_packet_descriptor const *d; + u8 const *b; + unsigned int length; + d = &urb->iso_frame_desc[i]; + b = urb->transfer_buffer + d->offset; + length = d->actual_length; memcpy(frame->data, b, length); frame->length = length; -- 2.14.1