Module Name: src Committed By: maxv Date: Sun Oct 18 16:59:19 UTC 2015
Modified Files: src/sys/compat/linux/common: linux_exec_aout.c src/sys/compat/sunos: sunos_exec_aout.c src/sys/compat/sunos32: sunos32_exec_aout.c Log Message: Make sure we have space for the aout header. To generate a diff of this commit: cvs rdiff -u -r1.67 -r1.68 src/sys/compat/linux/common/linux_exec_aout.c cvs rdiff -u -r1.18 -r1.19 src/sys/compat/sunos/sunos_exec_aout.c cvs rdiff -u -r1.11 -r1.12 src/sys/compat/sunos32/sunos32_exec_aout.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/linux/common/linux_exec_aout.c diff -u src/sys/compat/linux/common/linux_exec_aout.c:1.67 src/sys/compat/linux/common/linux_exec_aout.c:1.68 --- src/sys/compat/linux/common/linux_exec_aout.c:1.67 Sun Nov 9 17:48:08 2014 +++ src/sys/compat/linux/common/linux_exec_aout.c Sun Oct 18 16:59:19 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_exec_aout.c,v 1.67 2014/11/09 17:48:08 maxv Exp $ */ +/* $NetBSD: linux_exec_aout.c,v 1.68 2015/10/18 16:59:19 maxv Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_exec_aout.c,v 1.67 2014/11/09 17:48:08 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_exec_aout.c,v 1.68 2015/10/18 16:59:19 maxv Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -135,10 +135,12 @@ exec_linux_aout_makecmds(struct lwp *l, int machtype, magic; int error = ENOEXEC; + if (epp->ep_hdrvalid < sizeof(struct exec)) + return ENOEXEC; + magic = LINUX_N_MAGIC(linux_ep); machtype = LINUX_N_MACHTYPE(linux_ep); - if (machtype != LINUX_MID_MACHINE) return (ENOEXEC); Index: src/sys/compat/sunos/sunos_exec_aout.c diff -u src/sys/compat/sunos/sunos_exec_aout.c:1.18 src/sys/compat/sunos/sunos_exec_aout.c:1.19 --- src/sys/compat/sunos/sunos_exec_aout.c:1.18 Sat Aug 15 23:39:35 2009 +++ src/sys/compat/sunos/sunos_exec_aout.c Sun Oct 18 16:59:19 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos_exec_aout.c,v 1.18 2009/08/15 23:39:35 matt Exp $ */ +/* $NetBSD: sunos_exec_aout.c,v 1.19 2015/10/18 16:59:19 maxv Exp $ */ /* * Copyright (c) 1993 Theo de Raadt @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos_exec_aout.c,v 1.18 2009/08/15 23:39:35 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos_exec_aout.c,v 1.19 2015/10/18 16:59:19 maxv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -71,6 +71,8 @@ exec_sunos_aout_makecmds(struct lwp *l, struct sunos_exec *sunmag = epp->ep_hdr; int error = ENOEXEC; + if (epp->ep_hdrvalid < sizeof(struct sunos_exec)) + return ENOEXEC; if (!SUNOS_M_NATIVE(sunmag->a_machtype)) return (ENOEXEC); Index: src/sys/compat/sunos32/sunos32_exec_aout.c diff -u src/sys/compat/sunos32/sunos32_exec_aout.c:1.11 src/sys/compat/sunos32/sunos32_exec_aout.c:1.12 --- src/sys/compat/sunos32/sunos32_exec_aout.c:1.11 Thu May 29 14:51:26 2008 +++ src/sys/compat/sunos32/sunos32_exec_aout.c Sun Oct 18 16:59:19 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos32_exec_aout.c,v 1.11 2008/05/29 14:51:26 mrg Exp $ */ +/* $NetBSD: sunos32_exec_aout.c,v 1.12 2015/10/18 16:59:19 maxv Exp $ */ /* * Copyright (c) 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos32_exec_aout.c,v 1.11 2008/05/29 14:51:26 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos32_exec_aout.c,v 1.12 2015/10/18 16:59:19 maxv Exp $"); #if defined(_KERNEL_OPT) #include "opt_execfmt.h" @@ -54,6 +54,8 @@ exec_sunos32_aout_makecmds(struct lwp *l struct sunos_exec *sunmag = epp->ep_hdr; int error = ENOEXEC; + if (epp->ep_hdrvalid < sizeof(struct sunos_exec)) + return ENOEXEC; if (!SUNOS_M_NATIVE(sunmag->a_machtype)) return (ENOEXEC);