lkml.org 
[lkml]   [2019]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 59/83] ALSA: line6: Fix memory leak at line6_init_pcm() error path
    Date
    From: Takashi Iwai <tiwai@suse.de>

    commit 1bc8d18c75fef3b478dbdfef722aae09e2a9fde7 upstream.

    I forgot to release the allocated object at the early error path in
    line6_init_pcm(). For addressing it, slightly shuffle the code so
    that the PCM destructor (pcm->private_free) is assigned properly
    before all error paths.

    Fixes: 3450121997ce ("ALSA: line6: Fix write on zero-sized buffer")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/usb/line6/pcm.c | 18 +++++++++---------
    1 file changed, 9 insertions(+), 9 deletions(-)

    --- a/sound/usb/line6/pcm.c
    +++ b/sound/usb/line6/pcm.c
    @@ -552,6 +552,15 @@ int line6_init_pcm(struct usb_line6 *lin
    line6pcm->volume_monitor = 255;
    line6pcm->line6 = line6;

    + spin_lock_init(&line6pcm->out.lock);
    + spin_lock_init(&line6pcm->in.lock);
    + line6pcm->impulse_period = LINE6_IMPULSE_DEFAULT_PERIOD;
    +
    + line6->line6pcm = line6pcm;
    +
    + pcm->private_data = line6pcm;
    + pcm->private_free = line6_cleanup_pcm;
    +
    line6pcm->max_packet_size_in =
    usb_maxpacket(line6->usbdev,
    usb_rcvisocpipe(line6->usbdev, ep_read), 0);
    @@ -564,15 +573,6 @@ int line6_init_pcm(struct usb_line6 *lin
    return -EINVAL;
    }

    - spin_lock_init(&line6pcm->out.lock);
    - spin_lock_init(&line6pcm->in.lock);
    - line6pcm->impulse_period = LINE6_IMPULSE_DEFAULT_PERIOD;
    -
    - line6->line6pcm = line6pcm;
    -
    - pcm->private_data = line6pcm;
    - pcm->private_free = line6_cleanup_pcm;
    -
    err = line6_create_audio_out_urbs(line6pcm);
    if (err < 0)
    return err;

    \
     
     \ /
      Last update: 2019-09-04 20:25    [W:4.064 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site