diff options
author | neilbrown <neilbrown> | 2003-08-11 05:55:49 +0000 |
---|---|---|
committer | neilbrown <neilbrown> | 2003-08-11 05:55:49 +0000 |
commit | fce515b864024bd4d25c55063f0d0835986a01f9 (patch) | |
tree | 0c366b45d9eeaa0272627bcefcb267b8f9abde2b | |
parent | 9c8dfab04dcf5f5067061703d6cd08ee408eec8f (diff) | |
download | nfs-utils-fce515b864024bd4d25c55063f0d0835986a01f9.tar.gz nfs-utils-fce515b864024bd4d25c55063f0d0835986a01f9.tar.xz nfs-utils-fce515b864024bd4d25c55063f0d0835986a01f9.zip |
close a filehandle before opening.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | utils/mountd/cache.c | 5 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,7 @@ +2003-08-11 NeilBrown <neilb@cse.unsw.edu.au> + * utils/mountd/cache.c(cache_get_filehandle): close the filehandle + before returning. + 2003-08-04 NeilBrown <neilb@cse.unsw.edu.au> * support/include/nfs/export.h, support/nfs/exports.c, utils/exportfs/exports.c, utils/mountd/mountd.c: change diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index 96492b8..a265ecd 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -376,6 +376,7 @@ cache_get_filehandle(nfs_export *exp, int len, char *p) FILE *f = fopen("/proc/fs/nfsd/filehandle", "r+"); char buf[200]; char *bp = buf; + int failed; static struct nfs_fh_len fh; if (!f) @@ -388,7 +389,9 @@ cache_get_filehandle(nfs_export *exp, int len, char *p) qword_printint(f, len); qword_eol(f); - if (fgets(buf, sizeof(buf), f) == NULL) + failed = (fgets(buf, sizeof(buf), f) == NULL); + fclose(f); + if (failed) return NULL; memset(fh.fh_handle, 0, sizeof(fh.fh_handle)); fh.fh_size = qword_get(&bp, fh.fh_handle, NFS3_FHSIZE); |