Module Name:    src
Committed By:   chs
Date:           Wed Nov 11 03:31:04 UTC 2020

Modified Files:
        src/external/cddl/osnet/sys/kern: kmem.c

Log Message:
kmem_cache_create()'s "name" parameter can be on the stack,
so make a copy of it rather than keeping a pointer to it.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/sys/kern/kmem.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/sys/kern/kmem.c
diff -u src/external/cddl/osnet/sys/kern/kmem.c:1.2 src/external/cddl/osnet/sys/kern/kmem.c:1.3
--- src/external/cddl/osnet/sys/kern/kmem.c:1.2	Thu May 23 08:32:30 2019
+++ src/external/cddl/osnet/sys/kern/kmem.c	Wed Nov 11 03:31:04 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: kmem.c,v 1.2 2019/05/23 08:32:30 hannken Exp $	*/
+/*	$NetBSD: kmem.c,v 1.3 2020/11/11 03:31:04 chs Exp $	*/
 
 /*-
  * Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -30,6 +30,7 @@
 
 struct kmem_cache {
 	pool_cache_t km_pool;
+	char km_name[32];
 	void *km_private;
 	int (*km_constructor)(void *, void *, int);
 	void (*km_destructor)(void *, void *);
@@ -78,11 +79,12 @@ kmem_cache_create(char *name, size_t buf
 	KASSERT(vmp == NULL);
 
 	km = kmem_zalloc(sizeof(*km), KM_SLEEP);
+	strlcpy(km->km_name, name, sizeof(km->km_name));
 	km->km_private = private;
 	km->km_constructor = constructor;
 	km->km_destructor = destructor;
 	km->km_reclaim = reclaim;
-	km->km_pool = pool_cache_init(bufsize, align, 0, 0, name, NULL,
+	km->km_pool = pool_cache_init(bufsize, align, 0, 0, km->km_name, NULL,
 	    IPL_NONE, solaris_constructor, solaris_destructor, km);
 	if (km->km_pool == NULL) {
 		kmem_free(km, sizeof(*km));

Reply via email to