diff options
author | Kees Cook <keescook@chromium.org> | 2014-08-29 15:18:40 -0700 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2015-05-11 21:22:21 +0800 |
commit | 60fafac3c592636f0bbbc75e20e2d7dcc2284c20 (patch) | |
tree | 81e33b80d68cfcaa7067f8d5a5c739093a155145 /mm | |
parent | 548233701e2be93471a703b490b6702c000d60bc (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')
-rw-r--r-- | mm/zpool.c | 2 | ||||
-rw-r--r-- | mm/zsmalloc.c | 1 |
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, }; +MODULE_ALIAS("zpool-zsmalloc"); #endif /* CONFIG_ZPOOL */ /* per-cpu VM mapping areas for zspage accesses that cross page boundaries */ |