• Julien Brunel's avatar
    UBI: fix IS_ERR test · 0e4a008a
    Julien Brunel authored
    In case of error, the function add_volume returns an ERR pointer. The
    result of IS_ERR, which is supposed to be used in a test as it is, is
    here checked to be less than zero, which seems odd. We suggest to
    replace this test by a simple IS_ERR test.
    
    A simplified version of the semantic match that finds this problem is
    as follows:
    (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @def0@
    expression x;
    position p0;
    @@
    x@p0 = add_volume(...)
    
    @protected@
    expression def0.x,E;
    position def0.p0;
    position p;
    statement S;
    @@
    x@p0
    ... when != x = E
    if (!IS_ERR(x) && ...) {<... x@p ...>} else S
    
    @unprotected@
    expression def0.x,E;
    identifier fld;
    position def0.p0;
    position p != protected.p;
    @@
    x@p0
    ... when != x = E
    * x@p->fld
    // </smpl>
    Signed-off-by: default avatarJulien Brunel <brunel@diku.dk>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
    0e4a008a
scan.c 33 KB