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);