diff options
Diffstat (limited to 'kernel/module.c')
-rw-r--r-- | kernel/module.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c index 9db11911e04b..152b1655bbac 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1806,6 +1806,7 @@ static noinline struct module *load_module(void __user *umod, | |||
1806 | Elf_Ehdr *hdr; | 1806 | Elf_Ehdr *hdr; |
1807 | Elf_Shdr *sechdrs; | 1807 | Elf_Shdr *sechdrs; |
1808 | char *secstrings, *args, *modmagic, *strtab = NULL; | 1808 | char *secstrings, *args, *modmagic, *strtab = NULL; |
1809 | char *staging; | ||
1809 | unsigned int i; | 1810 | unsigned int i; |
1810 | unsigned int symindex = 0; | 1811 | unsigned int symindex = 0; |
1811 | unsigned int strindex = 0; | 1812 | unsigned int strindex = 0; |
@@ -1960,6 +1961,14 @@ static noinline struct module *load_module(void __user *umod, | |||
1960 | goto free_hdr; | 1961 | goto free_hdr; |
1961 | } | 1962 | } |
1962 | 1963 | ||
1964 | staging = get_modinfo(sechdrs, infoindex, "staging"); | ||
1965 | if (staging) { | ||
1966 | add_taint_module(mod, TAINT_CRAP); | ||
1967 | printk(KERN_WARNING "%s: module is from the staging directory," | ||
1968 | " the quality is unknown, you have been warned.\n", | ||
1969 | mod->name); | ||
1970 | } | ||
1971 | |||
1963 | /* Now copy in args */ | 1972 | /* Now copy in args */ |
1964 | args = strndup_user(uargs, ~0UL >> 1); | 1973 | args = strndup_user(uargs, ~0UL >> 1); |
1965 | if (IS_ERR(args)) { | 1974 | if (IS_ERR(args)) { |
@@ -2556,6 +2565,8 @@ static char *module_flags(struct module *mod, char *buf) | |||
2556 | buf[bx++] = 'P'; | 2565 | buf[bx++] = 'P'; |
2557 | if (mod->taints & TAINT_FORCED_MODULE) | 2566 | if (mod->taints & TAINT_FORCED_MODULE) |
2558 | buf[bx++] = 'F'; | 2567 | buf[bx++] = 'F'; |
2568 | if (mod->taints & TAINT_CRAP) | ||
2569 | buf[bx++] = 'C'; | ||
2559 | /* | 2570 | /* |
2560 | * TAINT_FORCED_RMMOD: could be added. | 2571 | * TAINT_FORCED_RMMOD: could be added. |
2561 | * TAINT_UNSAFE_SMP, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't | 2572 | * TAINT_UNSAFE_SMP, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't |