lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 27 Oct 2018 01:24:05 +0200 From: Rasmus Villemoes <linux@...musvillemoes.dk> To: Kees Cook <keescook@...omium.org>, Andrew Morton <akpm@...ux-foundation.org> Cc: linux-kernel@...r.kernel.org, Rasmus Villemoes <linux@...musvillemoes.dk> Subject: [RFC PATCH 3/7] kernel.h: implement fmtmatch() wrapper around fmtcheck() Some users may prefer to check a "user-supplied" string upfront and return EINVAL rather than using the the template as a fallback for printf'ing later. fmtmatch() is simply a shorthand for fmtcheck(a, b, c | FMTCHECK_SILENT) == a. Signed-off-by: Rasmus Villemoes <linux@...musvillemoes.dk> --- include/linux/kernel.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 8e9154e100c3..c2b710426227 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -507,11 +507,18 @@ _fmtcheck(const char *fmt, const char *tmpl, unsigned flags) return fmt; } #endif + +static inline bool +_fmtmatch(const char *fmt, const char *tmpl, unsigned flags) +{ + return _fmtcheck(fmt, tmpl, flags | FMTCHECK_SILENT) == fmt; +} /* * Use of fmtcheck is pointless if the template is not a string * literal, so try to enforce that. */ #define fmtcheck(fmt, tmpl, flags) _fmtcheck(fmt, "" tmpl "", flags) +#define fmtmatch(fmt, tmpl, flags) _fmtmatch(fmt, "" tmpl "", flags) extern __scanf(2, 3) int sscanf(const char *, const char *, ...); -- 2.19.1.6.gbde171bbf5
Powered by blists - more mailing lists