summaryrefslogtreecommitdiff
path: root/sys/compat/hpux
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2005-12-30 19:46:56 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2005-12-30 19:46:56 +0000
commit59186e41369608855681212e555f620400f125ca (patch)
tree68f8e875d2639dbfd9d7e9efa05d50a34482d829 /sys/compat/hpux
parente4021e01bb99e4567a9194ab990184de4e823e19 (diff)
Missing or incorrect header sizes bounds check; ``looks ok'' mickey@
Diffstat (limited to 'sys/compat/hpux')
-rw-r--r--sys/compat/hpux/hppa/hpux_exec.c4
-rw-r--r--sys/compat/hpux/m68k/hpux_exec.c5
2 files changed, 6 insertions, 3 deletions
diff --git a/sys/compat/hpux/hppa/hpux_exec.c b/sys/compat/hpux/hppa/hpux_exec.c
index 3a865e041e1..163ce3dbad8 100644
--- a/sys/compat/hpux/hppa/hpux_exec.c
+++ b/sys/compat/hpux/hppa/hpux_exec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpux_exec.c,v 1.2 2005/03/12 18:38:52 mickey Exp $ */
+/* $OpenBSD: hpux_exec.c,v 1.3 2005/12/30 19:46:53 miod Exp $ */
/*
* Copyright (c) 2004 Michael Shalayeff. All rights reserved.
@@ -109,7 +109,7 @@ exec_hpux_makecmds(p, epp)
/* XXX read in the aux header if it was not following the som header */
if (sysid != MID_HPUX && (!(som_ep->som_version == HPUX_SOM_V0 ||
som_ep->som_version == HPUX_SOM_V1) ||
- som_ep->som_auxhdr + sizeof(struct som_aux) < epp->ep_hdrvalid)) {
+ som_ep->som_auxhdr + sizeof(struct som_aux) > epp->ep_hdrvalid)) {
return (error);
}
diff --git a/sys/compat/hpux/m68k/hpux_exec.c b/sys/compat/hpux/m68k/hpux_exec.c
index 1bad2ef2894..ce5b1d26ec9 100644
--- a/sys/compat/hpux/m68k/hpux_exec.c
+++ b/sys/compat/hpux/m68k/hpux_exec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpux_exec.c,v 1.1 2004/07/09 21:33:45 mickey Exp $ */
+/* $OpenBSD: hpux_exec.c,v 1.2 2005/12/30 19:46:55 miod Exp $ */
/* $NetBSD: hpux_exec.c,v 1.8 1997/03/16 10:14:44 thorpej Exp $ */
/*
@@ -102,6 +102,9 @@ exec_hpux_makecmds(p, epp)
short sysid, magic;
int error = ENOEXEC;
+ if (epp->ep_hdrvalid < sizeof(struct hpux_exec))
+ return (ENOEXEC);
+
magic = HPUX_MAGIC(hpux_ep);
sysid = HPUX_SYSID(hpux_ep);