Commit 137f8cff authored by Kees Cook's avatar Kees Cook Committed by Linus Torvalds

mm/zpool: use prefixed module loading

To avoid potential format string expansion via module parameters, do not
use the zpool type directly in request_module() without a format string.
Additionally, to avoid arbitrary modules being loaded via zpool API
(e.g.  via the zswap_zpool_type module parameter) add a "zpool-" prefix
to the requested module, as well as module aliases for the existing
zpool types (zbud and zsmalloc).
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Cc: Seth Jennings <sjennings@variantweb.net>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Acked-by: default avatarDan Streetman <ddstreet@ieee.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0cf1e9d6
...@@ -195,6 +195,7 @@ static struct zpool_driver zbud_zpool_driver = { ...@@ -195,6 +195,7 @@ static struct zpool_driver zbud_zpool_driver = {
.total_size = zbud_zpool_total_size, .total_size = zbud_zpool_total_size,
}; };
MODULE_ALIAS("zpool-zbud");
#endif /* CONFIG_ZPOOL */ #endif /* CONFIG_ZPOOL */
/***************** /*****************
......
...@@ -150,7 +150,7 @@ struct zpool *zpool_create_pool(char *type, gfp_t gfp, struct zpool_ops *ops) ...@@ -150,7 +150,7 @@ struct zpool *zpool_create_pool(char *type, gfp_t gfp, struct zpool_ops *ops)
driver = zpool_get_driver(type); driver = zpool_get_driver(type);
if (!driver) { if (!driver) {
request_module(type); request_module("zpool-%s", type);
driver = zpool_get_driver(type); driver = zpool_get_driver(type);
} }
......
...@@ -315,6 +315,7 @@ static struct zpool_driver zs_zpool_driver = { ...@@ -315,6 +315,7 @@ static struct zpool_driver zs_zpool_driver = {
.total_size = zs_zpool_total_size, .total_size = zs_zpool_total_size,
}; };
MODULE_ALIAS("zpool-zsmalloc");
#endif /* CONFIG_ZPOOL */ #endif /* CONFIG_ZPOOL */
/* per-cpu VM mapping areas for zspage accesses that cross page boundaries */ /* per-cpu VM mapping areas for zspage accesses that cross page boundaries */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment