linux-stable/fs/nfsd
Julia Lawall 53e6d8d182 fs/nfsd/export.c: Adjust error handling code involving auth_domain_put
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: Julia Lawall <julia@diku.dk>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2008-07-30 13:20:20 -04:00
..
auth.c nfsd: fix sparse warnings 2008-04-23 16:13:39 -04:00
auth.h nfsd: minor fs/nfsd/auth.h cleanup 2008-02-01 16:42:05 -05:00
export.c fs/nfsd/export.c: Adjust error handling code involving auth_domain_put 2008-07-30 13:20:20 -04:00
lockd.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
Makefile knfsd: trivial makefile cleanup 2007-05-09 12:30:54 -07:00
nfs2acl.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfs3acl.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfs3proc.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfs3xdr.c Use struct path in struct svc_export 2008-02-14 21:17:08 -08:00
nfs4acl.c knfsd: nfsd4: fix handling of acl errrors 2007-07-17 10:23:07 -07:00
nfs4callback.c rpc: bring back cl_chatty 2008-07-09 12:09:10 -04:00
nfs4idmap.c nfsd: fix sparse warnings 2008-04-23 16:13:39 -04:00
nfs4proc.c nfsd: dprint operation names 2008-07-02 19:03:19 -04:00
nfs4recover.c [PATCH] r/o bind mounts: get callers of vfs_mknod/create/mkdir() 2008-04-19 00:25:34 -04:00
nfs4state.c nfsd: take file and mnt write in nfs4_upgrade_open 2008-07-07 15:23:34 -04:00
nfs4xdr.c nfsd: nfs4xdr.c do-while is not a compound statement 2008-07-18 15:18:35 -04:00
nfscache.c nfsd: fail module init on reply cache init failure 2008-02-01 16:42:04 -05:00
nfsctl.c lockd: Pass "struct sockaddr *" to new failover-by-IP function 2008-07-15 16:11:29 -04:00
nfsfh.c nfsd: fix spurious EACCESS in reconnect_path() 2008-06-30 15:24:11 -04:00
nfsproc.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfssvc.c nfsd: treat all shutdown signals as equivalent 2008-06-30 15:27:47 -04:00
nfsxdr.c Use struct path in struct svc_export 2008-02-14 21:17:08 -08:00
stats.c [PATCH] knfsd: nfsd4: add per-operation server stats 2006-07-10 13:24:27 -07:00
vfs.c nfsd: clean up mnt_want_write calls 2008-07-01 15:22:03 -04:00