diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 98e280286634..e2d91a97eaba 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.35 1994/10/01 02:56:05 davidg Exp $ + * $Id: trap.c,v 1.36 1994/10/08 22:19:50 phk Exp $ */ /* @@ -664,6 +664,12 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + switch (error) { case 0: diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 98e280286634..e2d91a97eaba 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.35 1994/10/01 02:56:05 davidg Exp $ + * $Id: trap.c,v 1.36 1994/10/08 22:19:50 phk Exp $ */ /* @@ -664,6 +664,12 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + switch (error) { case 0: diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index 98e280286634..e2d91a97eaba 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.35 1994/10/01 02:56:05 davidg Exp $ + * $Id: trap.c,v 1.36 1994/10/08 22:19:50 phk Exp $ */ /* @@ -664,6 +664,12 @@ syscall(frame) error = (*callp->sy_call)(p, args, rval); + if (p->p_sysent->sv_errsize) + if (error >= p->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = p->p_sysent->sv_errtbl[error]; + switch (error) { case 0: