mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
basic/stdio-util: use a fixed message in xsprintf
We put the name of the variable in the message, but it is a local variable and the name does not have global meaning. We end up with pointless copies of the error string: $ strings build/libsystemd.so.0.40.0 | grep 'big enough' xsprintf: p[] must be big enough xsprintf: error[] must be big enough xsprintf: prefix[] must be big enough xsprintf: pty[] must be big enough xsprintf: mode[] must be big enough xsprintf: t[] must be big enough xsprintf: s[] must be big enough xsprintf: spid[] must be big enough xsprintf: header_priority[] must be big enough xsprintf: header_pid[] must be big enough xsprintf: path[] must be big enough xsprintf: buf[] must be big enough The error message already shows the file, line, and function name, which is enough to identify the problem: Assertion 'xsprintf: buffer too small' failed at src/test/test-string-util.c:20, function test_xsprintf(). Aborting.
This commit is contained in:
@@ -19,7 +19,7 @@ static inline char* snprintf_ok(char *buf, size_t len, const char *format, ...)
|
||||
}
|
||||
|
||||
#define xsprintf(buf, fmt, ...) \
|
||||
assert_message_se(snprintf_ok(buf, ELEMENTSOF(buf), fmt, ##__VA_ARGS__), "xsprintf: " #buf "[] must be big enough")
|
||||
assert_message_se(snprintf_ok(buf, ELEMENTSOF(buf), fmt, ##__VA_ARGS__), "xsprintf: buffer too small")
|
||||
|
||||
#define VA_FORMAT_ADVANCE(format, ap) \
|
||||
do { \
|
||||
|
||||
Reference in New Issue
Block a user