FreeBSD Bugzilla – Attachment 11872 Details for
Bug 23191
[PATCH] Fix for panics in lookup() after forced unmount
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 1.30 KB, created by
tmoestl
on 2000-11-30 13:40:00 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
tmoestl
Created:
2000-11-30 13:40:00 UTC
Size:
1.30 KB
patch
obsolete
>*** old/kern/vfs_lookup.c Sat Nov 25 23:55:39 2000 >--- new/kern/vfs_lookup.c Sun Nov 26 00:58:15 2000 >*************** >*** 403,408 **** >--- 403,412 ---- > if ((dp->v_flag & VROOT) == 0 || > (cnp->cn_flags & NOCROSSMOUNT)) > break; >+ if (dp->v_mount == NULL) { /* forced unmount */ >+ error = EBADF; >+ goto bad; >+ } > tdp = dp; > dp = dp->v_mount->mnt_vnodecovered; > vput(tdp); >*************** >*** 424,430 **** > printf("not found\n"); > #endif > if ((error == ENOENT) && >! (dp->v_flag & VROOT) && > (dp->v_mount->mnt_flag & MNT_UNION)) { > tdp = dp; > dp = dp->v_mount->mnt_vnodecovered; >--- 428,434 ---- > printf("not found\n"); > #endif > if ((error == ENOENT) && >! (dp->v_flag & VROOT) && (dp->v_mount != NULL) && > (dp->v_mount->mnt_flag & MNT_UNION)) { > tdp = dp; > dp = dp->v_mount->mnt_vnodecovered; >*************** >*** 502,507 **** >--- 506,517 ---- > ((cnp->cn_flags & FOLLOW) || trailing_slash || > *ndp->ni_next == '/')) { > cnp->cn_flags |= ISSYMLINK; >+ if (dp->v_mount == NULL) { >+ /* We can't know whether the directory was mounted with >+ * NOSYMFOLLOW, so we can't follow safely. */ >+ error = EBADF; >+ goto bad2; >+ } > if (dp->v_mount->mnt_flag & MNT_NOSYMFOLLOW) { > error = EACCES; > goto bad2;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 23191
: 11872