• Julia Lawall's avatar
    fs/nfsd/export.c: Adjust error handling code involving auth_domain_put · 53e6d8d1
    Julia Lawall authored
    Once clp is assigned, it never becomes NULL, so we can make a label for it
    in the error handling code.  Because the call to path_lookup follows the
    call to auth_domain_find, its error handling code should jump to this new
    label.
    
    The semantic match that finds this problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @r@
    expression x,E;
    statement S;
    position p1,p2,p3;
    @@
    
    (
    if ((x = auth_domain_find@p1(...)) == NULL || ...) S
    |
    x = auth_domain_find@p1(...)
    ... when != x
    if (x == NULL || ...) S
    )
    <...
    if@p3 (...) { ... when != auth_domain_put(x)
                      when != if (x) { ... auth_domain_put(x); ...}
        return@p2 ...;
    }
    ...>
    (
    return x;
    |
    return 0;
    |
    x = E
    |
    E = x
    |
    auth_domain_put(x)
    )
    
    @exists@
    position r.p1,r.p2,r.p3;
    expression x;
    int ret != 0;
    statement S;
    @@
    
    * x = auth_domain_find@p1(...)
      <...
    * if@p3 (...)
      S
      ...>
    * return@p2 \(NULL\|ret\);
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    53e6d8d1
export.c 38.9 KB