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;