summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjl <hjl>2000-05-01 23:04:10 +0000
committerhjl <hjl>2000-05-01 23:04:10 +0000
commit542bbc455b3bc3b21f8cf86a153cd89dae119470 (patch)
tree7409b776ffc6685951fdcc2bb725e1fbbdfde8b2
parent646251e68a34cb0d4cf85d4ec24c644227f09727 (diff)
downloadnfs-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--ChangeLog5
-rw-r--r--utils/rquotad/rquota_server.c14
2 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index d98d6e3..c499476 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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) {