提交 8669aafd 编写于 作者: A Al Viro

[PATCH] fix double-free in blk_init_queue_node()

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 afc847b7
...@@ -1854,8 +1854,10 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) ...@@ -1854,8 +1854,10 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
return NULL; return NULL;
q->node = node_id; q->node = node_id;
if (blk_init_free_list(q)) if (blk_init_free_list(q)) {
goto out_init; kmem_cache_free(requestq_cachep, q);
return NULL;
}
/* /*
* if caller didn't supply a lock, they get per-queue locking with * if caller didn't supply a lock, they get per-queue locking with
...@@ -1891,9 +1893,7 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) ...@@ -1891,9 +1893,7 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
return q; return q;
} }
blk_cleanup_queue(q); blk_put_queue(q);
out_init:
kmem_cache_free(requestq_cachep, q);
return NULL; return NULL;
} }
EXPORT_SYMBOL(blk_init_queue_node); EXPORT_SYMBOL(blk_init_queue_node);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册