summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mountd
diff options
context:
space:
mode:
authorrodrigc <rodrigc@FreeBSD.org>2006-07-08 13:49:24 +0000
committerrodrigc <rodrigc@FreeBSD.org>2006-07-08 13:49:24 +0000
commit42f2307385b539be42db57548e392b25b20089d1 (patch)
treeecec46b0405f5724bdfa89b2c1e093f3ea67b69c /usr.sbin/mountd
parentc46606bd75194eaed28ee3397a4cec4f1622854d (diff)
downloadFreeBSD-src-42f2307385b539be42db57548e392b25b20089d1.zip
FreeBSD-src-42f2307385b539be42db57548e392b25b20089d1.tar.gz
In get_exportlist(), properly loop over mounted filesystems.
PR: bin/99873 Submitted by: Danny Braniss <danny at cs dot huji dot ac dot il>
Diffstat (limited to 'usr.sbin/mountd')
-rw-r--r--usr.sbin/mountd/mountd.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c
index 7a1968f..40fb1c6 100644
--- a/usr.sbin/mountd/mountd.c
+++ b/usr.sbin/mountd/mountd.c
@@ -963,7 +963,7 @@ get_exportlist()
struct export_args export;
struct dirlist *dirhead;
struct iovec *iov;
- struct statfs fsb, *fsp;
+ struct statfs fsb, *fsp, *mntbufp;
struct xucred anon;
struct xvfsconf vfc;
char *cp, *endcp, *dirp, *hst, *usr, *dom, savedc;
@@ -1001,10 +1001,9 @@ get_exportlist()
/*
* And delete exports that are in the kernel for all local
* filesystems.
- * XXX: Should know how to handle all local exportable filesystems
- * instead of just "ufs".
+ * XXX: Should know how to handle all local exportable filesystems.
*/
- num = getmntinfo(&fsp, MNT_NOWAIT);
+ num = getmntinfo(&mntbufp, MNT_NOWAIT);
if (num > 0) {
build_iovec(&iov, &iovlen, "fstype", NULL, 0);
@@ -1016,6 +1015,7 @@ get_exportlist()
}
for (i = 0; i < num; i++) {
+ fsp = &mntbufp[i];
if (getvfsbyname(fsp->f_fstypename, &vfc) != 0) {
syslog(LOG_ERR, "getvfsbyname() failed for %s",
fsp->f_fstypename);
@@ -1052,7 +1052,6 @@ get_exportlist()
"can't delete exports for %s: %m %s",
fsp->f_mntonname, errmsg);
}
- fsp++;
}
if (iov != NULL) {
OpenPOWER on IntegriCloud