• Julia Lawall's avatar
    fs/btrfs/inode.c: Add missing IS_ERR test · 34d19bad
    Julia Lawall authored
    After the conditional that precedes the following code, inode may be an
    ERR_PTR value.  This can eg result from a memory allocation failure via the
    call to btrfs_iget, and thus does not imply that root is different than
    sub_root.  Thus, an IS_ERR check is added to ensure that there is no
    dereference of inode in this case.
    
    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @r@
    identifier f;
    @@
    f(...) { ... return ERR_PTR(...); }
    
    @@
    identifier r.f, fld;
    expression x;
    statement S1,S2;
    @@
     x = f(...)
     ... when != IS_ERR(x)
    (
     if (IS_ERR(x) ||...) S1 else S2
    |
    *x->fld
    )
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    34d19bad
inode.c 196 KB