diff options
author | hjl <hjl> | 2000-05-01 23:04:10 +0000 |
---|---|---|
committer | hjl <hjl> | 2000-05-01 23:04:10 +0000 |
commit | 542bbc455b3bc3b21f8cf86a153cd89dae119470 (patch) | |
tree | 7409b776ffc6685951fdcc2bb725e1fbbdfde8b2 | |
parent | 646251e68a34cb0d4cf85d4ec24c644227f09727 (diff) | |
download | nfs-utils-542bbc455b3bc3b21f8cf86a153cd89dae119470.tar.gz nfs-utils-542bbc455b3bc3b21f8cf86a153cd89dae119470.tar.xz nfs-utils-542bbc455b3bc3b21f8cf86a153cd89dae119470.zip |
2000-05-01 H.J. Lu <hjl@lucon.org>
* utils/rquotad/rquota_server.c (getquotainfo): Call stat ()
to check for the mounting point.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | utils/rquotad/rquota_server.c | 14 |
2 files changed, 13 insertions, 6 deletions
@@ -1,3 +1,8 @@ +2000-05-01 H.J. Lu <hjl@lucon.org> + + * utils/rquotad/rquota_server.c (getquotainfo): Call stat () + to check for the mounting point. + 2000-04-29 Chip Salzenberg <chip@valinux.com> Neil Brown <neilb@cse.unsw.edu.au> diff --git a/utils/rquotad/rquota_server.c b/utils/rquotad/rquota_server.c index bef99c7..1c5e0e6 100644 --- a/utils/rquotad/rquota_server.c +++ b/utils/rquotad/rquota_server.c @@ -71,9 +71,9 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp) struct mntent *mnt; char *pathname, *qfpathname; int fd, err, id, type; - struct stat st; + struct stat stm, stn; struct statfs stf; - + /* * First check authentication. */ @@ -107,15 +107,17 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp) fp = setmntent(MNTTAB, "r"); while ((mnt = getmntent(fp)) != (struct mntent *)0) { - if (strcasecmp (mnt->mnt_dir, pathname)) - continue; + if (stat(mnt->mnt_dir, &stm) == -1 + || stat(pathname, &stn) == -1) + break; + else if (stm.st_dev != stn.st_dev) + continue; if (mnt->mnt_fsname [0] != '/' || strcasecmp (mnt->mnt_type, MNTTYPE_NFS) == 0 || strcasecmp (mnt->mnt_type, MNTTYPE_AUTOFS) == 0 || strcasecmp (mnt->mnt_type, MNTTYPE_SWAP) == 0 - || strcasecmp (mnt->mnt_type, MNTTYPE_IGNORE) == 0 - || stat(pathname, &st) == -1) + || strcasecmp (mnt->mnt_type, MNTTYPE_IGNORE) == 0) break; if (statfs(pathname, &stf) == -1) { |