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: Kees Cook <keescook@chromium.org> Cc: Seth Jennings <sjennings@variantweb.net> Cc: Minchan Kim <minchan@kernel.org> Cc: Nitin Gupta <ngupta@vflare.org> Acked-by: Dan Streetman <ddstreet@ieee.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0cf1e9d6c3
commit
137f8cff50
@ -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)
|
|||||||
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 = {
|
|||||||
.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 */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user