![]() | |||||||||||||
Messages in this thread |
>One of mistakes module_param() user can make is to supply default value >of module parameter as the last argument. module_param() accepts >permissions instead. If default value is, say, 3 (-------wx), parameter >becomes world-writeable. > >First version of this check (only "& 2" part) directly caught 4 out of 7 >places during my last grep. It could probably do "& 0013" or "& ~664", because -x seems quite useless in module parameters. That would also catch perm<0 and perm>0777. > #define __module_param_call(prefix, name, set, get, arg, perm) \ >+ /* Default value instead of permissions? */ \ >+ static int __param_perm_check_##name __attribute__((unused)) = \ >+ BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)); \ > static char __param_str_##name[] = prefix #name; \ > static struct kernel_param const __param_##name \ > __attribute_used__ \ -`J' -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-10-30 10:37 [from the cache] ©2003-2008 | |||||||||||||