• J
    USB: isp1760: Use an IS_ERR test rather than a NULL test · ce5dee50
    Julien Brunel 提交于
    In case of error, the function isp1760_register returns an ERR
    pointer, but never returns a NULL pointer. So after a call to this
    function, a NULL test should be replaced by an IS_ERR test. Moreover,
    we have noticed that:
    (1) the result of isp1760_register is assigned through the function
    pci_set_drvdata without an error test,
    (2) if the call to isp1760_register fails, the current function
    (isp1761_pci_probe) returns 0, and if it succeeds, it returns -ENOMEM,
    which seems odd.
    
    Thus, we suggest to move the test before the call to pci_set_drvdata
    to correct (1), and to turn it into a non IS_ERR test to correct (2).
    
    The semantic match that finds this problem is as follows: 
    (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @bad_null_test@
    expression x,E;
    statement S1, S2;
    @@
    x =  isp1760_register(...)
    ... when != x = E
    * if (x == NULL)
    S1 else S2
    // </smpl>
    Signed-off-by: NJulien Brunel <brunel@diku.dk>
    Signed-off-by: NJulia Lawall <julia@diku.dk>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    ce5dee50
isp1760-if.c 7.5 KB