Module Name: src Committed By: ahoka Date: Fri Apr 23 11:39:53 UTC 2010
Modified Files: src/external/cddl/osnet/dev/dtrace: dtrace_sysctl.c dtrace_unload.c src/external/cddl/osnet/dev/dtrace/amd64: dtrace_subr.c src/external/cddl/osnet/dev/dtrace/i386: dtrace_subr.c src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c Log Message: Remove a couple of zero length kmem_frees. It should fix at least one crash when unloading the dtrace module, possibly many others. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c \ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c cvs rdiff -u -r1.3 -r1.4 \ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c cvs rdiff -u -r1.10 -r1.11 \ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c:1.2 src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c:1.3 --- src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c:1.2 Sun Feb 21 01:46:33 2010 +++ src/external/cddl/osnet/dev/dtrace/dtrace_sysctl.c Fri Apr 23 11:39:52 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_sysctl.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */ +/* $NetBSD: dtrace_sysctl.c,v 1.3 2010/04/23 11:39:52 ahoka Exp $ */ /* * CDDL HEADER START @@ -76,7 +76,7 @@ if (p_name != NULL) { error = sysctl_handle_string(oidp, p_name, len, req); - kmem_free(p_name, 0); + kmem_free(p_name, len); } return (error); Index: src/external/cddl/osnet/dev/dtrace/dtrace_unload.c diff -u src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.2 src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.3 --- src/external/cddl/osnet/dev/dtrace/dtrace_unload.c:1.2 Sun Feb 21 01:46:33 2010 +++ src/external/cddl/osnet/dev/dtrace/dtrace_unload.c Fri Apr 23 11:39:52 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_unload.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */ +/* $NetBSD: dtrace_unload.c,v 1.3 2010/04/23 11:39:52 ahoka Exp $ */ /* * CDDL HEADER START @@ -92,7 +92,7 @@ vmem_destroy(dtrace_arena); if (dtrace_toxrange != NULL) { - kmem_free(dtrace_toxrange, 0); + kmem_free(dtrace_toxrange, sizeof (dtrace_toxrange_t *); dtrace_toxrange = NULL; dtrace_toxranges = 0; dtrace_toxranges_max = 0; Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.3 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.4 --- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.3 Sat Mar 13 22:31:15 2010 +++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Fri Apr 23 11:39:53 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.3 2010/03/13 22:31:15 christos Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.4 2010/04/23 11:39:53 ahoka Exp $ */ /* * CDDL HEADER START @@ -110,7 +110,7 @@ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, 0); + kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); } /*ARGSUSED*/ Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.4 src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.5 --- src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c:1.4 Thu Mar 18 13:45:54 2010 +++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_subr.c Fri Apr 23 11:39:53 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: dtrace_subr.c,v 1.4 2010/03/18 13:45:54 tron Exp $ */ +/* $NetBSD: dtrace_subr.c,v 1.5 2010/04/23 11:39:53 ahoka Exp $ */ /* * CDDL HEADER START @@ -113,7 +113,7 @@ prev->dtih_next = hdlr->dtih_next; } - kmem_free(hdlr, 0); + kmem_free(hdlr, sizeof (dtrace_invop_hdlr_t)); } void Index: src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c diff -u src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.10 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.11 --- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.10 Sat Mar 13 22:31:15 2010 +++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Fri Apr 23 11:39:53 2010 @@ -11854,19 +11854,19 @@ freeenv(p_env); if (len < sizeof (dof_hdr_t)) { - kmem_free(buf, 0); + kmem_free(buf, len); dtrace_dof_error(NULL, "truncated header"); return (NULL); } if (len < (loadsz = dof->dofh_loadsz)) { - kmem_free(buf, 0); + kmem_free(buf, len); dtrace_dof_error(NULL, "truncated DOF"); return (NULL); } if (loadsz >= dtrace_dof_maxsize) { - kmem_free(buf, 0); + kmem_free(buf, len); dtrace_dof_error(NULL, "oversized DOF"); return (NULL); }