• Julia Lawall's avatar
    HID: drivers/hid/hid-roccat.c: eliminate a null pointer dereference · 8052ee5f
    Julia Lawall authored
    It is not possible to take the lock in device if device is NULL.
    The mutex_lock is thus moved after the NULL test.  New error handling
    labels are added at the end to differentiate between the cases where
    different sets of locks should be unlocks, and between whether or not
    reader should be freed (only on error).
    
    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @r@
    expression E, E1;
    identifier f;
    statement S1,S2,S3;
    @@
    
    if (E == NULL)
    {
      ... when != if (E == NULL || ...) S1 else S2
          when != E = E1
    *E->f
      ... when any
      return ...;
    }
    else S3
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    8052ee5f
hid-roccat.c 10.4 KB