summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/ibcs2/ibcs2_util.c13
-rw-r--r--sys/i386/ibcs2/imgact_coff.c23
2 files changed, 7 insertions, 29 deletions
diff --git a/sys/i386/ibcs2/ibcs2_util.c b/sys/i386/ibcs2/ibcs2_util.c
index 1d710be..0a361fd 100644
--- a/sys/i386/ibcs2/ibcs2_util.c
+++ b/sys/i386/ibcs2/ibcs2_util.c
@@ -62,7 +62,6 @@ ibcs2_emul_find(p, sgp, prefix, path, pbuf, cflag)
struct nameidata ndroot;
struct vattr vat;
struct vattr vatroot;
- struct ucred *uc;
int error;
char *ptr, *buf, *cp;
size_t sz, len;
@@ -141,20 +140,14 @@ ibcs2_emul_find(p, sgp, prefix, path, pbuf, cflag)
return error;
}
- PROC_LOCK(p);
- uc = p->p_ucred;
- crhold(uc);
- PROC_UNLOCK(p);
- if ((error = VOP_GETATTR(nd.ni_vp, &vat, uc, p)) != 0) {
- crfree(uc);
+ if ((error = VOP_GETATTR(nd.ni_vp, &vat, p->p_ucred, p)) != 0) {
goto done;
}
- if ((error = VOP_GETATTR(ndroot.ni_vp, &vatroot, uc, p)) != 0) {
- crfree(uc);
+ if ((error = VOP_GETATTR(ndroot.ni_vp, &vatroot, p->p_ucred, p))
+ != 0) {
goto done;
}
- crfree(uc);
if (vat.va_fsid == vatroot.va_fsid &&
vat.va_fileid == vatroot.va_fileid) {
diff --git a/sys/i386/ibcs2/imgact_coff.c b/sys/i386/ibcs2/imgact_coff.c
index 066648b..e7cb544 100644
--- a/sys/i386/ibcs2/imgact_coff.c
+++ b/sys/i386/ibcs2/imgact_coff.c
@@ -156,7 +156,6 @@ coff_load_file(struct proc *p, char *name)
struct nameidata nd;
struct vnode *vp;
struct vattr attr;
- struct ucred *uc;
struct filehdr *fhdr;
struct aouthdr *ahdr;
struct scnhdr *scns;
@@ -182,38 +181,24 @@ coff_load_file(struct proc *p, char *name)
goto fail;
}
- PROC_LOCK(p);
- uc = p->p_ucred;
- crhold(uc);
- PROC_UNLOCK(p);
- if ((error = VOP_GETATTR(vp, &attr, uc, p)) != 0) {
- crfree(uc);
+ if ((error = VOP_GETATTR(vp, &attr, p->p_ucred, p)) != 0)
goto fail;
- }
if ((vp->v_mount->mnt_flag & MNT_NOEXEC)
|| ((attr.va_mode & 0111) == 0)
- || (attr.va_type != VREG)) {
- crfree(uc);
+ || (attr.va_type != VREG))
goto fail;
- }
if (attr.va_size == 0) {
error = ENOEXEC;
- crfree(uc);
goto fail;
}
- if ((error = VOP_ACCESS(vp, VEXEC, uc, p)) != 0) {
- crfree(uc);
+ if ((error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p)) != 0)
goto fail;
- }
- if ((error = VOP_OPEN(vp, FREAD, uc, p)) != 0) {
- crfree(uc);
+ if ((error = VOP_OPEN(vp, FREAD, p->p_ucred, p)) != 0)
goto fail;
- }
- crfree(uc);
/*
* Lose the lock on the vnode. It's no longer needed, and must not
OpenPOWER on IntegriCloud