Module Name: src Committed By: tron Date: Sun Nov 6 12:40:05 UTC 2011
Modified Files: src/sys/kern: kern_module.c Log Message: Return ENOEXEC instead of 0 if the info of a kernel module doesn't have the expected size. This prevents kernel panics when loading broken modules. To generate a diff of this commit: cvs rdiff -u -r1.83 -r1.84 src/sys/kern/kern_module.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/kern/kern_module.c diff -u src/sys/kern/kern_module.c:1.83 src/sys/kern/kern_module.c:1.84 --- src/sys/kern/kern_module.c:1.83 Tue Oct 18 12:25:31 2011 +++ src/sys/kern/kern_module.c Sun Nov 6 12:40:04 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_module.c,v 1.83 2011/10/18 12:25:31 jmcneill Exp $ */ +/* $NetBSD: kern_module.c,v 1.84 2011/11/06 12:40:04 tron Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.83 2011/10/18 12:25:31 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_module.c,v 1.84 2011/11/06 12:40:04 tron Exp $"); #define _MODULE_INTERNAL @@ -1233,7 +1233,7 @@ module_fetch_info(module_t *mod) } if (size != sizeof(modinfo_t **)) { module_error("`link_set_modules' section wrong size"); - return error; + return ENOEXEC; } mod->mod_info = *(modinfo_t **)addr;