summaryrefslogtreecommitdiff
path: root/sys/dev/i2c
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2013-09-12 20:30:58 +0000
committermartin <martin@NetBSD.org>2013-09-12 20:30:58 +0000
commite65fe256da8780c3945cbb56bd9397585c53f511 (patch)
tree7728a42c6df564f560e54df96244d42f0aafc1f8 /sys/dev/i2c
parentccfcd5c10bb533e48d0d1f746118740f3a3cf1f4 (diff)
Fix evil "sizeof(void*)" botch
Diffstat (limited to 'sys/dev/i2c')
-rw-r--r--sys/dev/i2c/i2c_exec.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/i2c/i2c_exec.c b/sys/dev/i2c/i2c_exec.c
index 28da9c566b4..a54f362e7eb 100644
--- a/sys/dev/i2c/i2c_exec.c
+++ b/sys/dev/i2c/i2c_exec.c
@@ -1,4 +1,4 @@
-/* $NetBSD: i2c_exec.c,v 1.8 2012/04/22 14:10:36 pgoyette Exp $ */
+/* $NetBSD: i2c_exec.c,v 1.9 2013/09/12 20:30:58 martin Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i2c_exec.c,v 1.8 2012/04/22 14:10:36 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i2c_exec.c,v 1.9 2013/09/12 20:30:58 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -90,8 +90,9 @@ iic_exec(i2c_tag_t tag, i2c_op_t op, i2c_addr_t addr, const void *vcmd,
case 2:
break;
default:
- memcpy(data, vbuf, sizeof(vbuf));
- data[sizeof(vbuf)] = iic_smbus_pec(2, b, data);
+ KASSERT(buflen+1 < sizeof(data));
+ memcpy(data, vbuf, buflen);
+ data[buflen] = iic_smbus_pec(2, b, data);
buflen++;
break;
}