aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChunwei Chen <[email protected]>2016-05-27 17:28:12 -0700
committerBrian Behlendorf <[email protected]>2016-05-31 11:58:42 -0700
commitea5f1a200b974c8fdd51993c282d8ae0dc2aa871 (patch)
treea1a7c8844e3ff54d490da84983e4f5648d7d0e29
parentf58040c0fc8bc6490fcc75db7fc3e709dfc3c656 (diff)
Fix use-after-free in splat_taskq_test7
This splat_vprint is using tq_arg->name after tq_arg is freed. Signed-off-by: Chunwei Chen <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #557
-rw-r--r--module/splat/splat-taskq.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/module/splat/splat-taskq.c b/module/splat/splat-taskq.c
index 8f06f413d..f26f828d9 100644
--- a/module/splat/splat-taskq.c
+++ b/module/splat/splat-taskq.c
@@ -1040,11 +1040,12 @@ splat_taskq_test7_impl(struct file *file, void *arg, boolean_t prealloc)
error = (tq_arg->depth == SPLAT_TASKQ_DEPTH_MAX ? 0 : -EINVAL);
+ splat_vprint(file, SPLAT_TASKQ_TEST7_NAME,
+ "Taskq '%s' destroying\n", tq_arg->name);
+
kmem_free(tqe, sizeof (taskq_ent_t));
kmem_free(tq_arg, sizeof (splat_taskq_arg_t));
- splat_vprint(file, SPLAT_TASKQ_TEST7_NAME,
- "Taskq '%s' destroying\n", tq_arg->name);
taskq_destroy(tq);
return (error);