tree-wide: mark log_struct with _printf_ and fix fallout
log_struct takes multiple format strings, each one followed by arguments. The _printf_ annotation is not sufficiently flexible to express this, but we can still annotate the first format string, though not its arguments (because their number is unknown). With the annotation, the places which specified the message id or similar as the first pattern cause a warning from -Wformat-nonliteral. This can be trivially fixed by putting the MESSAGE= first. This change will help find issues where a non-literal is erroneously used as the pattern.
This commit is contained in:
parent
c8304ba902
commit
ba360bb05c
|
@ -137,7 +137,7 @@ int log_format_iovec(
|
|||
bool newline_separator,
|
||||
int error,
|
||||
const char *format,
|
||||
va_list ap);
|
||||
va_list ap) _printf_(6, 0);
|
||||
|
||||
/* This modifies the buffer passed! */
|
||||
int log_dump_internal(
|
||||
|
|
|
@ -2887,9 +2887,9 @@ static int exec_child(
|
|||
if (line) {
|
||||
log_open();
|
||||
log_struct(LOG_DEBUG,
|
||||
LOG_UNIT_ID(unit),
|
||||
"EXECUTABLE=%s", command->path,
|
||||
LOG_UNIT_MESSAGE(unit, "Executing: %s", line),
|
||||
LOG_UNIT_ID(unit),
|
||||
NULL);
|
||||
log_close();
|
||||
}
|
||||
|
@ -2953,9 +2953,9 @@ int exec_spawn(Unit *unit,
|
|||
return log_oom();
|
||||
|
||||
log_struct(LOG_DEBUG,
|
||||
LOG_UNIT_ID(unit),
|
||||
LOG_UNIT_MESSAGE(unit, "About to execute: %s", line),
|
||||
"EXECUTABLE=%s", command->path,
|
||||
LOG_UNIT_ID(unit),
|
||||
NULL);
|
||||
pid = fork();
|
||||
if (pid < 0)
|
||||
|
|
|
@ -800,18 +800,18 @@ static void job_log_status_message(Unit *u, JobType t, JobResult result) {
|
|||
|
||||
default:
|
||||
log_struct(job_result_log_level[result],
|
||||
LOG_UNIT_ID(u),
|
||||
LOG_MESSAGE("%s", buf),
|
||||
"RESULT=%s", job_result_to_string(result),
|
||||
LOG_UNIT_ID(u),
|
||||
NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
log_struct(job_result_log_level[result],
|
||||
mid,
|
||||
LOG_UNIT_ID(u),
|
||||
LOG_MESSAGE("%s", buf),
|
||||
"RESULT=%s", job_result_to_string(result),
|
||||
LOG_UNIT_ID(u),
|
||||
mid,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -2693,7 +2693,6 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
|||
|
||||
log_struct(f == SERVICE_SUCCESS ? LOG_DEBUG :
|
||||
(code == CLD_EXITED ? LOG_NOTICE : LOG_WARNING),
|
||||
LOG_UNIT_ID(u),
|
||||
LOG_UNIT_MESSAGE(u, "Main process exited, code=%s, status=%i/%s",
|
||||
sigchld_code_to_string(code), status,
|
||||
strna(code == CLD_EXITED
|
||||
|
@ -2701,6 +2700,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
|
|||
: signal_to_string(status))),
|
||||
"EXIT_CODE=%s", sigchld_code_to_string(code),
|
||||
"EXIT_STATUS=%i", status,
|
||||
LOG_UNIT_ID(u),
|
||||
NULL);
|
||||
|
||||
if (s->result == SERVICE_SUCCESS)
|
||||
|
|
|
@ -1497,9 +1497,9 @@ static void unit_status_log_starting_stopping_reloading(Unit *u, JobType t) {
|
|||
* possible, which means we should avoid the low-level unit
|
||||
* name. */
|
||||
log_struct(LOG_INFO,
|
||||
mid,
|
||||
LOG_UNIT_ID(u),
|
||||
LOG_MESSAGE("%s", buf),
|
||||
LOG_UNIT_ID(u),
|
||||
mid,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue