lkml.org 
[lkml]   [2011]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 3/5] drivers/hid/hid-roccat.c: eliminate a null pointer dereference
    From
    On Sat, Oct 29, 2011 at 11:36 AM, Arend van Spriel <arend@broadcom.com> wrote:
    > On 10/29/2011 08:24 AM, Dan Carpenter wrote:
    >> On Sat, Oct 29, 2011 at 01:58:15AM +0200, Julia Lawall wrote:
    >>> diff --git a/drivers/hid/hid-roccat.c b/drivers/hid/hid-roccat.c
    >>> index 2596321..36a28b8 100644
    >>> --- a/drivers/hid/hid-roccat.c
    >>> +++ b/drivers/hid/hid-roccat.c
    >>> @@ -163,14 +163,15 @@ static int roccat_open(struct inode *inode, struct file *file)
    >>>
    >>>      device = devices[minor];
    >>>
    >>> -    mutex_lock(&device->readers_lock);
    >>> -
    >>>      if (!device) {
    >>>              pr_emerg("roccat device with minor %d doesn't exist\n", minor);
    >>> -            error = -ENODEV;
    >>> -            goto exit_err;
    >>> +            kfree(reader);
    >>> +            mutex_lock(&devices_lock);
    >>
    >> Typo.  mutex_unlock() instead of mutex_lock().
    >
    > This is no typo, but simply wrong. Remove the mutex_lock() as we are
    > leaving the function here in error flow.

    No, this one is definitely needed. Its devices_lock, not
    device->readers_lock! And devices_lock is locked before so we need to
    unlock it if we return in this branch.

    >>> +            return -ENODEV;
    >>>      }
    >>>
    >>> +    mutex_lock(&device->readers_lock);
    >>> +
    >>>      if (!device->open++) {
    >>>              /* power on device on adding first reader */
    >>>              error = hid_hw_power(device->hid, PM_HINT_FULLON);
    >>>
    >>
    >> regards,
    >> dan carpenter
    >
    > Gr. AvS

    Regards
    David
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-10-29 12:55    [W:0.024 / U:1.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site