tomoyo: use vsnprintf() properly
Idiomatic way to find how much space sprintf output would take is len = snprintf(NULL, 0, ...) + 1; Once upon a time there'd been libc implementations that blew chunks on that and somebody had come up with the following "cute" trick: len = snprintf((char *) &len, 1, ...) + 1; for doing the same. However, that's unidiomatic, harder to follow *and* any such libc implementation would violate both C99 and POSIX (since 2001). IOW, this kludge is best buried along with such libc implementations, nevermind getting cargo-culted into newer code. Our vsnprintf() does not suffer that braindamage, TYVM. Acked-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
568035b01c
commit
89868773fe
|
@ -423,7 +423,7 @@ void tomoyo_write_log(struct tomoyo_request_info *r, const char *fmt, ...)
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
len = vsnprintf((char *) &len, 1, fmt, args) + 1;
|
len = vsnprintf(NULL, 0, fmt, args) + 1;
|
||||||
va_end(args);
|
va_end(args);
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
tomoyo_write_log2(r, len, fmt, args);
|
tomoyo_write_log2(r, len, fmt, args);
|
||||||
|
|
|
@ -2057,7 +2057,7 @@ int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...)
|
||||||
bool quota_exceeded = false;
|
bool quota_exceeded = false;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
len = vsnprintf((char *) &len, 1, fmt, args) + 1;
|
len = vsnprintf(NULL, 0, fmt, args) + 1;
|
||||||
va_end(args);
|
va_end(args);
|
||||||
/* Write /sys/kernel/security/tomoyo/audit. */
|
/* Write /sys/kernel/security/tomoyo/audit. */
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
|
|
Loading…
Reference in New Issue