path: root/mm
diff options
authorKees Cook <keescook@chromium.org>2014-08-29 15:18:40 -0700
committerAlex Shi <alex.shi@linaro.org>2015-05-11 21:22:21 +0800
commit60fafac3c592636f0bbbc75e20e2d7dcc2284c20 (patch)
tree81e33b80d68cfcaa7067f8d5a5c739093a155145 /mm
parent548233701e2be93471a703b490b6702c000d60bc (diff)
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> (cherry picked from commit 137f8cff505ace6251dc442c7aa973d60c801a79) Signed-off-by: Alex Shi <alex.shi@linaro.org> Conflicts: mm/zbud.c Conflicts solution: remove zbud
Diffstat (limited to 'mm')
2 files changed, 2 insertions, 1 deletions
diff --git a/mm/zpool.c b/mm/zpool.c
index e40612a1df00..739cdf0d183a 100644
--- a/mm/zpool.c
+++ b/mm/zpool.c
@@ -150,7 +150,7 @@ struct zpool *zpool_create_pool(char *type, gfp_t gfp, struct zpool_ops *ops)
driver = zpool_get_driver(type);
if (!driver) {
- request_module(type);
+ request_module("zpool-%s", type);
driver = zpool_get_driver(type);
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index fc25b58a02f8..f40ff48433e2 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -314,6 +314,7 @@ static struct zpool_driver zs_zpool_driver = {
.total_size = zs_zpool_total_size,
#endif /* CONFIG_ZPOOL */
/* per-cpu VM mapping areas for zspage accesses that cross page boundaries */