If the (exported) path passed to next_mnt() is simply "/", next_mnt() will not report any children, as none start with "/" followed by a '/'. So make a special case for strlen(p)==1. In that case, return all children. This gives correct handling if only "/" is exported. Signed-off-by: NeilBrown <neilb@xxxxxxx> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index c23d384d24eb..ac36b6d9f21e 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -377,6 +377,7 @@ static char *next_mnt(void **v, char *p) } else f = *v; while ((me = getmntent(f)) != NULL && + l > 1 && (strncmp(me->mnt_dir, p, l) != 0 || me->mnt_dir[l] != '/')) ;
Attachment:
pgpDMRL5giXUP.pgp
Description: OpenPGP digital signature