Module Name: src Committed By: maxv Date: Sun Feb 9 14:51:13 UTC 2014
Modified Files: src/sys/kern: kern_sysctl.c Log Message: Reorder code to avoid using an uninitialized variable: if sysctl_copyin fails, 'tmp' is not initialized. This bug is harmless since only the return value will be different; it does not expose kernel memory unless diagnostic is enabled. ok agc@ martin@ To generate a diff of this commit: cvs rdiff -u -r1.244 -r1.245 src/sys/kern/kern_sysctl.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_sysctl.c diff -u src/sys/kern/kern_sysctl.c:1.244 src/sys/kern/kern_sysctl.c:1.245 --- src/sys/kern/kern_sysctl.c:1.244 Fri Jan 17 02:12:48 2014 +++ src/sys/kern/kern_sysctl.c Sun Feb 9 14:51:13 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sysctl.c,v 1.244 2014/01/17 02:12:48 pooka Exp $ */ +/* $NetBSD: kern_sysctl.c,v 1.245 2014/02/09 14:51:13 maxv Exp $ */ /*- * Copyright (c) 2003, 2007, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.244 2014/01/17 02:12:48 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.245 2014/02/09 14:51:13 maxv Exp $"); #include "opt_defcorename.h" #include "ksyms.h" @@ -1549,14 +1549,12 @@ sysctl_lookup(SYSCTLFN_ARGS) return EINVAL; } error = sysctl_copyin(l, newp, &tmp, sz); + if (error) + break; if (tmp != true && tmp != false) { DPRINTF(("%s: tmp %d\n", __func__, tmp)); return EINVAL; } - if (error) { - DPRINTF(("%s: copyin %d\n", __func__, error)); - break; - } *(bool *)d = tmp; break; }