Module Name: src
Committed By: dsl
Date: Wed Aug 5 19:53:42 UTC 2009
Modified Files:
src/sys/kern: kern_ktrace.c
Log Message:
Fix ktrace of data from iovec based system calls.
Fixes PR/41819
To generate a diff of this commit:
cvs rdiff -u -r1.148 -r1.149 src/sys/kern/kern_ktrace.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_ktrace.c
diff -u src/sys/kern/kern_ktrace.c:1.148 src/sys/kern/kern_ktrace.c:1.149
--- src/sys/kern/kern_ktrace.c:1.148 Sun Jan 11 02:45:52 2009
+++ src/sys/kern/kern_ktrace.c Wed Aug 5 19:53:42 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_ktrace.c,v 1.148 2009/01/11 02:45:52 christos Exp $ */
+/* $NetBSD: kern_ktrace.c,v 1.149 2009/08/05 19:53:42 dsl Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_ktrace.c,v 1.148 2009/01/11 02:45:52 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_ktrace.c,v 1.149 2009/08/05 19:53:42 dsl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -673,7 +673,7 @@
struct ktrace_entry *kte;
struct ktr_genio *ktp;
size_t resid = len, cnt, buflen;
- void *cp;
+ char *cp;
next:
buflen = min(PAGE_SIZE, resid + sizeof(struct ktr_genio));
@@ -693,6 +693,7 @@
if (copyin(iov->iov_base, cp, cnt) != 0)
goto out;
kte->kte_kth.ktr_len += cnt;
+ cp += cnt;
buflen -= cnt;
resid -= cnt;
iov->iov_len -= cnt;