Print this page
5780 Truncated coredumps
*** 374,388 ****
* case the path will remain an empty string.
*/
(void) vnodetopath(vroot, fvp, fdinfo.pr_path,
sizeof (fdinfo.pr_path), credp);
! error = VOP_GETATTR(fvp, &vattr, 0, credp, NULL);
! if (error != 0) {
VN_RELE(fvp);
VN_RELE(vroot);
goto done;
}
if (fvp->v_type == VSOCK)
fdinfo.pr_fileflags |= sock_getfasync(fvp);
--- 374,405 ----
* case the path will remain an empty string.
*/
(void) vnodetopath(vroot, fvp, fdinfo.pr_path,
sizeof (fdinfo.pr_path), credp);
! if (VOP_GETATTR(fvp, &vattr, 0, credp, NULL) != 0) {
! /*
! * Try to write at least a subset of information
! */
! fdinfo.pr_major = 0;
! fdinfo.pr_minor = 0;
! fdinfo.pr_ino = 0;
! fdinfo.pr_mode = 0;
! fdinfo.pr_uid = -1;
! fdinfo.pr_gid = -1;
! fdinfo.pr_rmajor = 0;
! fdinfo.pr_rminor = 0;
! fdinfo.pr_size = -1;
!
! error = elfnote(vp, &offset, NT_FDINFO,
! sizeof (fdinfo), &fdinfo,
! rlimit, credp);
VN_RELE(fvp);
VN_RELE(vroot);
+ if (error)
goto done;
+ continue;
}
if (fvp->v_type == VSOCK)
fdinfo.pr_fileflags |= sock_getfasync(fvp);