mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-24 03:37:16 +00:00
Fix for getmntpoint(3) when checking for NFS mount points.
Only attempt to add /dev/ to f_mntfromname names that result in a valid character device. MFC after: 1 week Reported by: Bjoern A. Zeeb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37907
This commit is contained in:
parent
ea34aa4780
commit
ad055467be
|
@ -177,6 +177,11 @@ getmntpoint(const char *name)
|
|||
mntsize = getmntinfo(&mntbuf, MNT_NOWAIT);
|
||||
for (i = 0; i < mntsize; i++) {
|
||||
statfsp = &mntbuf[i];
|
||||
if (isdev == 0) {
|
||||
if (strcmp(name, statfsp->f_mntonname))
|
||||
continue;
|
||||
return (statfsp);
|
||||
}
|
||||
ddevname = statfsp->f_mntfromname;
|
||||
if (*ddevname != '/') {
|
||||
if ((len = strlen(_PATH_DEV) + strlen(ddevname) + 1) >
|
||||
|
@ -185,12 +190,8 @@ getmntpoint(const char *name)
|
|||
continue;
|
||||
strncpy(device, _PATH_DEV, len);
|
||||
strncat(device, ddevname, len);
|
||||
strncpy(statfsp->f_mntfromname, device, len);
|
||||
}
|
||||
if (isdev == 0) {
|
||||
if (strcmp(name, statfsp->f_mntonname))
|
||||
continue;
|
||||
return (statfsp);
|
||||
if (stat(device, &mntdevstat) == 0)
|
||||
strncpy(statfsp->f_mntfromname, device, len);
|
||||
}
|
||||
if (stat(ddevname, &mntdevstat) == 0 &&
|
||||
mntdevstat.st_rdev == devstat.st_rdev)
|
||||
|
|
Loading…
Reference in a new issue