Fix parsing of acregmin, acregmax, acdirmin and acdirmax NFS mount options
when passed as strings via nmount(). Submitted by: Jaakko Heinonen <jh saunalahti fi>
This commit is contained in:
parent
aa83f5fff9
commit
e4f9e894d4
@ -584,25 +584,25 @@ fallback_mount(struct iovec *iov, int iovlen, int mntflags)
|
||||
}
|
||||
if (findopt(iov, iovlen, "acregmin", &opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acregmin);
|
||||
if (ret != 1 || args.acregmin <= 0) {
|
||||
if (ret != 1 || args.acregmin < 0) {
|
||||
errx(1, "illegal acregmin: %s", opt);
|
||||
}
|
||||
}
|
||||
if (findopt(iov, iovlen, "acregmax", &opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acregmax);
|
||||
if (ret != 1 || args.acregmax <= 0) {
|
||||
if (ret != 1 || args.acregmax < 0) {
|
||||
errx(1, "illegal acregmax: %s", opt);
|
||||
}
|
||||
}
|
||||
if (findopt(iov, iovlen, "acdirmin", &opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acdirmin);
|
||||
if (ret != 1 || args.acdirmin <= 0) {
|
||||
if (ret != 1 || args.acdirmin < 0) {
|
||||
errx(1, "illegal acdirmin: %s", opt);
|
||||
}
|
||||
}
|
||||
if (findopt(iov, iovlen, "acdirmax", &opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acdirmax);
|
||||
if (ret != 1 || args.acdirmax <= 0) {
|
||||
if (ret != 1 || args.acdirmax < 0) {
|
||||
errx(1, "illegal acdirmax: %s", opt);
|
||||
}
|
||||
}
|
||||
|
@ -976,39 +976,43 @@ nfs_mount(struct mount *mp, struct thread *td)
|
||||
}
|
||||
if (vfs_getopt(mp->mnt_optnew, "acregmin", (void **)&opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acregmin);
|
||||
if (ret != 1 || args.acregmin <= 0) {
|
||||
if (ret != 1 || args.acregmin < 0) {
|
||||
vfs_mount_error(mp, "illegal acregmin: %s",
|
||||
opt);
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
args.flags |= NFSMNT_ACREGMIN;
|
||||
}
|
||||
if (vfs_getopt(mp->mnt_optnew, "acregmax", (void **)&opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acregmax);
|
||||
if (ret != 1 || args.acregmax <= 0) {
|
||||
if (ret != 1 || args.acregmax < 0) {
|
||||
vfs_mount_error(mp, "illegal acregmax: %s",
|
||||
opt);
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
args.flags |= NFSMNT_ACREGMAX;
|
||||
}
|
||||
if (vfs_getopt(mp->mnt_optnew, "acdirmin", (void **)&opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acdirmin);
|
||||
if (ret != 1 || args.acdirmin <= 0) {
|
||||
if (ret != 1 || args.acdirmin < 0) {
|
||||
vfs_mount_error(mp, "illegal acdirmin: %s",
|
||||
opt);
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
args.flags |= NFSMNT_ACDIRMIN;
|
||||
}
|
||||
if (vfs_getopt(mp->mnt_optnew, "acdirmax", (void **)&opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.acdirmax);
|
||||
if (ret != 1 || args.acdirmax <= 0) {
|
||||
if (ret != 1 || args.acdirmax < 0) {
|
||||
vfs_mount_error(mp, "illegal acdirmax: %s",
|
||||
opt);
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
args.flags |= NFSMNT_ACDIRMAX;
|
||||
}
|
||||
if (vfs_getopt(mp->mnt_optnew, "deadthresh", (void **)&opt, NULL) == 0) {
|
||||
ret = sscanf(opt, "%d", &args.deadthresh);
|
||||
|
Loading…
x
Reference in New Issue
Block a user