Module Name: src Committed By: jruoho Date: Sun Jan 31 20:38:11 UTC 2010
Modified Files: src/sys/dev/acpi: wmi_acpi.c Log Message: Verify the object type before using variables from it. In addition, use CTASSERT(9) instead of KASSERT(9). To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/dev/acpi/wmi_acpi.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/dev/acpi/wmi_acpi.c diff -u src/sys/dev/acpi/wmi_acpi.c:1.11 src/sys/dev/acpi/wmi_acpi.c:1.12 --- src/sys/dev/acpi/wmi_acpi.c:1.11 Sat Jan 23 13:32:45 2010 +++ src/sys/dev/acpi/wmi_acpi.c Sun Jan 31 20:38:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: wmi_acpi.c,v 1.11 2010/01/23 13:32:45 jruoho Exp $ */ +/* $NetBSD: wmi_acpi.c,v 1.12 2010/01/31 20:38:11 jruoho Exp $ */ /*- * Copyright (c) 2009, 2010 Jukka Ruohonen <jruoho...@iki.fi> @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.11 2010/01/23 13:32:45 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.12 2010/01/31 20:38:11 jruoho Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -209,16 +209,20 @@ goto fail; obj = buf.Pointer; - len = obj->Buffer.Length; - KASSERT(obj->Type == ACPI_TYPE_BUFFER); + if (obj->Type != ACPI_TYPE_BUFFER) { + rv = AE_TYPE; + goto fail; + } + + len = obj->Buffer.Length; if (len != obj->Package.Count) { rv = AE_BAD_VALUE; goto fail; } - KASSERT(sizeof(struct guid_t) == 20); + CTASSERT(sizeof(struct guid_t) == 20); if (len < sizeof(struct guid_t) || len % sizeof(struct guid_t) != 0) {