diff options
author | Dan Carpenter <error27@gmail.com> | 2010-10-27 17:19:04 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2010-11-19 18:35:11 -0500 |
commit | 43b0178eda1e7e5d1e205bbfd076ab5d6ecacc02 (patch) | |
tree | 522d3a6e49ff805eea06c5e1633b0e949a90a49b /fs/nfsd | |
parent | e53beacd23d9cb47590da6a7a7f6d417b941a994 (diff) |
nfsd: fix NULL dereference in setattr()
The original code would oops if this were called from nfsd4_setattr()
because "filpp" is NULL.
(Note this case is currently impossible, as long as we only give out
read delegations.)
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index ad2bfa68d53..2d191293e6a 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -3081,9 +3081,10 @@ nfs4_preprocess_stateid_op(struct nfsd4_compound_state *cstate, | |||
3081 | if (status) | 3081 | if (status) |
3082 | goto out; | 3082 | goto out; |
3083 | renew_client(dp->dl_client); | 3083 | renew_client(dp->dl_client); |
3084 | if (filpp) | 3084 | if (filpp) { |
3085 | *filpp = find_readable_file(dp->dl_file); | 3085 | *filpp = find_readable_file(dp->dl_file); |
3086 | BUG_ON(!*filpp); | 3086 | BUG_ON(!*filpp); |
3087 | } | ||
3087 | } else { /* open or lock stateid */ | 3088 | } else { /* open or lock stateid */ |
3088 | stp = find_stateid(stateid, flags); | 3089 | stp = find_stateid(stateid, flags); |
3089 | if (!stp) | 3090 | if (!stp) |